GVExport module

From PGVWiki
Jump to: navigation, search

Third-Party Code Disclaimer

This article "GVExport module" deals with code developed and made available for use in PhpGedView by a third-party developer. Details are provided here purely as a resource to PhpGedView users and as such the PhpGedView development team is not responsible for the code, or any loss of data that may result from it's use. If you have problems installing or using the code, find bugs etc you should contact the author of the code directly. Many developers of third-party code subscribe to the PhpGedView forums so you may also be able to reach them there.
GVExport module
Author: Ferenc Kurucz


I am sorry but I haven't done any development in the past 2 years on this module. And I am afraid I won't in the future. I would suggest you to go to this site where Pasquale keeps & maintains the newest version.

The GVExport module can export your family tree into a DOT file, which is the native data format of GraphViz application. Using GraphViz you can convert it to various image formats (GIF, JPG, PNG) or PostScript, PDF etc.


You can download the latest version of GVExport from my personal site.
Latest version is: 0.8.3, 2009-11-24

From version 0.8.0 I test it only on PGV 4.2/4.2SVN, so maybe it won't work on older releases... You can download the latest version which was tested on PGV 4.1 from here:



Obviously you will need a working PhpGedView installation (I tested it with 4.1.3, 4.1.4, 4.1.5, 4.1.6 SVN, 4.2, 4.2SVN)


If you would like to use GVExport's image creating functions 'on-the-fly', then you have to install the GraphViz application on the computer where PGV runs.


You need to install it from the repository:

~# apt-get install graphviz

That's it.



Installation through FTP



Just unzip the downloaded file to the directory where your PGV is installed (further referenced as 'PGV_Dir').


Default install directory is /usr/share/phpgedview/www.


In PGV_Dir/modules/gvexport there is a config.php file. With a text editor please edit the path to your GraphViz binary ($GVE_CONFIG["graphviz_bin"]). If you don't have an installed GraphViz where the PGV runs, then please uncomment that line with the empty string, so GVExport won't search for GraphViz executable.


Default path is /usr/bin/dot


If the installation was correct now you should see a new module 'GraphViz Export' on the top right side of your PGV page (if you are logged in). Please choose 'All-in-One Tree' on the dropdown menu.

Output settings

Output file type

Default is DOT and it is the only available format if you don't have a GraphViz installed on the computer where PGV runs. PNG, JPG, GIF are image formats and PNG is the suggested one (JPG has compression artifacts, GIF export is slow and PNG has no 64K pixel limit).

SVG is a nice option if you want "clickable" names (so can open in your browser the person's PGV "Individual Information" page).

If your GraphViz application supports PDF output format, I would highly recommend to use it all the time, because of fast generation times and low memory usage.

Warning: JPG has 64K pixel size limit (either width or height) which cannot be bypassed, PNG has no such limitation but the memory usage could be huge during the processing. Based on my experience the memory usage is: Width * Height * 2 bytes, so creating an image with 50000x10000 pixel size will need about 1GB of RAM).

Generate a file for download

If you check this option the file (DOT or image) won't shown in the browser, instead you can download it and save to your computer.

Use page break

Thi option make sense only if you decide to convert your DOT file to PostScript or PDF. There are some glitches, for example it cuts the boxes in half if its on the edge of page.

Graph direction
  • Top-to-Bottom: ancestors on top, descendants on bottom
  • Left-to-Right: ancestors on left, descendants on right
"Mclimit" setting

This option might help to reduce the number of crossings on your graph. Setting this to a higher number will slow down the generating of graph remarkably. Here are some data based on my experience:

mclimit : runtime
1       : 1 sec
5       : 2 sec
20      : 5 sec
50      : 15 sec
100     : 25 sec

Diagram Preferences

Individuals to be included on diagram

As it says, actually all individuals in the active GEDCOM file, but no linked GEDCOMs yet.

Anyone related to a person
Show only those individuals and families which are related somehow to the selected person. You can control which relations are to looking for:

  • Ancestors - Ancestors of selected individual (mom/dad & adopters too), max depth of search can be selected
  • Siblings - Siblings of selected individual and of its ancestors (sisters/brothers & aunts/uncles)
  • Cousines - Descendants of the siblings of ancestors of the selected individual (nice explanation :-)) (note: cousines are beeing searched down to the level of the selected individual (s.i.), so if s.i. has a sister and she has a child, then it won't show up on the graph)
  • Descendants - Descendants of the selected individual and all relatives (children & adopted persons), max depth of search can be selected
  • Spouses - Spouses of all included individuals (wifes/husbands of all the people selected in the above options)
  • Mark not blood-related people - Marks with different colors those peoples which are not blood-relate to the selected individual (like mom's brother's wife & adopters)
Mark those individuals which facts are not validated yet

Shows individuals with different color, to recognize those which have data not yet validated. Show last editor's username
Only make sense if you checked the above option. It will help you track submitters of not yet validated data.

Add URL to individuals and families

It works weel if you choose SVG output, it enables clicking on the names & marriages and it will open the relevant PGV page in your browser

Use abbreviated placenames

Use only the first and last part of place name. Like "City, Country" instead of "City, County, Region, Country"

Personal data to be shown
Marriage data to be shown


Diagram type

You can choose from four diagram types. The "Combined" type is only working correctly if you use the "anyone related to a person" mode.


Simple graph


Decorated graph

Decorated + photo

Decorated with photo graph


Combined graph

Font size
Color code of male individuals
Color code of female individuals
Color code of unknown individuals
Color code of families

Advanced Settings

Debug Mode

Dumps DOT file & other debug info on screen

Custom media directory


Version 0.8.3 (2009-11-24)
- New    : Additional settings to control the look of the tree (dpi, ranksep, nodesep)
- Fixed  : Combined tree (request by Meliza Amity)
- Fixed  : Date handling for 4.2.3SVN compatibility, properly localised dates (by Łukasz Wileński)
- Changed: Polish translation updated (by Łukasz Wileński)
Version 0.8.2 (2009-10-05)
- New    : Stop tree processing on given INDIs (request by Marcel Beerli)

Version 0.8.1a (2009-08-16)
- Fixed  : UI error if no Graphviz path is given

Version 0.8.1 (2009-04-11)
- New    : Multiple indis could be added for partial trees (request by Bruno Spiquel)

Version 0.8.0 (2009-02-15)
- Fixed  : Compatibility with 4.2/4.2SVN (by Ely Schoenfeld)
- New    : Photos in combined boxes (by Ely Schoenfeld)
- Changed: Output file types configured in config.php /don't forget to replace it!/ (by Ely Schoenfeld)
Version 0.7.2 (2008-10-23)
- Fixed  : Clickable containers (INDI and FAM) - now working again
- New    : Family containers could be switched off, so the graph is more compact now (its quite usable for pedigree & descendancy charts)
- New    : PostScript output works (sort of), this is needed if the page-breaking mode is used

Version 0.7.1 (2008-10-19)
- Fixed  : Works correctly with 4.1.6 SVN (file naming difference: person_class.php vs class_person.php)

Version 0.7.0b (2008-10-19)
- Fixed  : missing gvexport.php in the zip file (sorry!)

Version 0.7.0 (2008-07-27)
- Fixed  : Works correctly with 4.1.5 & 4.1.6 SVN (date handling)
- New    : Minor improvements in usability 

Version 0.6.6 (2008-05-01)
- New    : UI settings are saved in cookie (by Till Schulte-Coerne)
- New    : Multiple date formats (under development)

Version 0.6.5 (2008-04-06)
- Fixed  : Workaround for the bug in method Family->getSpouseId() & UI changes (by Till Schulte-Coerne)

Version 0.6.4 (2008-03-22)
- New    : German translation (by Hermann Schulte-Coerne)
- New    : Custom font name

Version 0.6.3 (2008-02-01)
- Fixed  : Multi-platform operability (by Thomas Ledoux), now GVExport & GraphViz should work together on Win OS.

Version 0.6.2 (2008-01-31)
- New    : Custom limit for ancestors and descendants search depth (level)
- New    : Search for cousines (now its a separate checkbox)
- New    : French translation (by Thomas Ledoux)
- Fixed  : URLs in combined mode

Version 0.6.1 (2008-01-23)
- New    : Linked GEDCOMs (only in partial tree mode, not when "Everyone" is selected), URLs are working too for linked GEDCOMs.  
- Fixed  : INDIs with unknown gender in "combined" mode
- Fixed  : INDI id missing in "decorated" mode
- Fixed  : FAM id problems in "combined" mode (linked GEDCOMs)
- Fixed  : Polish translation is up-to-date (by wooc)

Version 0.6.0 (2008-01-22)
- New    : UI redesign
- Changed: Debug mode more self-explanatory

Version 0.5.4 (2008-01-16)
- New    : PDF output (depends on graphviz version)
- New    : Custom media directory
- Fixed  : Absoulte URLs in indi/fam links
- Fixed  : Goofs in HTML formatted texts (& sign)
- Fixed  : Marriage place naming (abbr vs full)
- Fixed  : Left justified texts
- Fixed  : Avoiding estimated birth dates (if death date is present)

Version 0.5.3 (2008-01-14)
- New    : Customizable text on the chart (in config file)
- New    : Full or abbreviated place name (in config file)
- New    : Margin size (in config file)
- Fixed  : Removing double qoutes (") from names	

Version 0.5.2 (2007-12-20)
- New    : Polish translation (by wooc)

Version 0.5.1a (2007-12-13)
- Fixed  : MCLIMIT setting (wasn't functioning at all)

Version 0.5.1 (2007-12-12)
- New    : MCLIMIT setting

Version 0.5.0 (2007-12-02)
- Fixed  : PHP error during "simple" graph processing
- New    : INDI id and FAM id can be shown on graph (TODO #4)
- New    : Clickable containers (INDI and FAM), which opens the indi/fam page in PGV (TODO #2)
- New    : Last editor's username can be shown (TODO #4)

Version 0.4.9 (2007-11-30)
- Fixed  : (Now really fixed) Unvalidated individuals and families are shown (TODO #1) 
- New    : Graph direction selectable (Top-to-Bottom or Left-to-Right)
- New    : Combined graph mode (husband and wife in a single cell together with marriage info) - works correctly only in partial tree mode
- New    : Data shown in the container can be selected

Version 0.4.8 (2007-11-29)
- Fixed  : Unvalidated individuals and families are shown (TODO #1)

Version 0.4.7 (2007-11-28)
- Fixed  : Error handling for GraphViz exec (Pasquale Ceres <pasquale_ceres at yahoo it>)
- New    : Graph can be shown in the browser window (Pasquale Ceres <pasquale_ceres at yahoo it>)

Version 0.4.6 (2007-11-27)
- New    : People with not validated data could be marked

Version 0.4.5 (2007-11-27)
- New    : Pagebreaking output could be selected (it has effect only on DOT files)

Version 0.4.4 (2007-11-25)
- New    : New diagram type - Decorated with photos (could be slow!)
- New    : Not blood related people could be marked with different color (on partial tree)
- New    : Siblings can be included in partial tree
- Changed: Some UI changes

Version 0.4.3 (2007-11-24)
- New    : Custom font size used on diagram

Version 0.4.2 (2007-11-24)
- New    : Ancestors, descendants & spouses are selectable in partial tree mode

Version 0.4.1 (2007-11-24)
- Fixed  : Syntax error in DOT file, when using "decorated" mode

Version 0.4 (2007-11-23)
- New    : Logic rewritten
- New    : Partial tree selection is available (INDI and his/her ancestors)
- New    : Added Italian language file (Pasquale Ceres <pasquale_ceres at yahoo it>)
- New    : Added SVG output format, but seems to be buggy
- Changed: Some speed-up on full tree generation
- Changed: Code cleanup (require files)
- Changed: Default colors in config.php

Version 0.3.2 (2007-11-22)
- Fixed  : If localized language file is missing, then "en" is used

Version 0.3.1 (2007-11-22)
- New    : Basic configuration is available in a dedicated config file
- Fixed  : Proper use of language files
- Changed: No more JS popups (gvexport_output.php is obsolete now)

Version 0.3 (2007-11-22)
- New    : Simple / Decorated (HTML) diagram
- New    : Custom colors for diagram 
- Fixed  : PHP bug (Pasquale Ceres <pasquale_ceres at yahoo it>)

Version 0.2 (2007-11-21)
- Fixed  : PHP4 compatibility (Pasquale Ceres <pasquale_ceres at yahoo it>)
- Changed: Temp files are saved into system temp dir / "md5(username)" subdir instead of "session_id" subdir, so fewer dirs are created now

Version 0.1 (2007-11-15)
- Initial version

TODO list

  • Media Firewall compatibility


Ferenc Kurucz (korbendallas1976@gmail.com)