PDF is an initialism (versus an acronym, which is slightly different [http://www.randomhouse.com/wotd/index.pperl?date=19980825]) for "Portable Document Format", a file format created by Adobe [http://www.adobe.com/]. [CL] maintains a page [http://phaseit.net/claird/comp.text.pdf/PDF.html] on the subject. While there's no [Tcl]-specific broadly-applicable PDF library as of summer 2003, PDFlib [http://www.pdflib.com/] supports Tcl among several other language bindings. Notice at the heart of PDFlib's licensing [http://www.pdflib.com/purchase/howtobuy.html] this summary: "You may test and fully include our software in your projects, but you need a valid license key to remove the 'www.pdflib.com' demo stamp on all generated pages." [Perl] and [Python] have much stronger PDF stories to tell (see [http://www.unixreview.com/documents/s=7822/ur0304g/], for example), and, of course, Tcl has ways to exploit anything available through those languages, including [Tclperl] and [Tclpython]. ---- [Clif Flynt] worked on generating PDFs from Tcl. [Lars H] has written a pure Tcl package '''writepdf''' (see [http://ftp.ctan.org/tex-archive/macros/latex/contrib/tclldoc/examples/] and its parent directory) that can generate well-formed PDF files. The API is roughly at the same level of abstraction as writing raw [postscript] with [puts], so you need to be familiar with the PDF specification to use it. ''It would be great to have something sitting on top of writepdf which can generate correct pdf from a text widget and a canvas...It seems like this ought to be possible in pure Tcl.'' [Lars H]: It is certainly possible (at least to the same extent as the analogous generation of PS files). I suspect the main difficulty would be how to handle text, or more precisely, select a font that matches that used in the original widget. My more immediate interest was otherwise to be able to use PDF as an "export format" for graphics not really having anything to do with [Tk], but I don't know when I can return to even that part of the project. ---- 2003-11-25 [VI] The PDF specifications are at http://partners.adobe.com/asn/tech/pdf/specifications.jsp While there are relatively few direct Tcl-PDF connections as of late 2001, "pdf417_encode [http://freshmeat.net/projects/pdf417_encode/] converts ASCII strings into pdf417 [barcode]". NOTE: PDF417 barcodes have nothing whatsoever to do with Adobe's Portable Document Format. ---- What: TEItools Where: http://xtalk.price.ru/SGML/TEItools/ Description: Collection of Tcl and other tool scripts used for transforming SGML documents to various other formats. Currently supports HTML, LaTeX2e, RTF, PS, and PDF. Uses CoST. Updated: 04/1998 Contact: mailto:boris@xtalk.msk.su What: WELD Where: http://www.javafoundry.com/javapdf Description: Web Enabled Logic Documents (WELD) make use of Jacl/Tcl to provide the ability to hold WWW applications together. WELD is a part of JavaPDF (the open source servlet utilities project). Updated: 08/2001 Contact: mailto:lhall@JavaFoundry.com (Lee T Hall) What: pdflib Where: http://www.pdflib.com/ Description: PDFLib is an ANSI C library for creating new PDF files. Bindings for a number of languages, including Tcl, are available. This package is not designed to access and update existing PDF files. Updated: 11/1999 Contact: mailto:tm@muc.de ---- [Sven Sass]'s employer generates PDF by way of [Java] classes converting [Docbook] to [FO] to PDF (!). ---- The most immediate contact between PDF and Tk probably is by way of [PS], the "output" format for [canvas]es. [Clif Flynt] has "a subset of a Tcl canvas->PDF script ... [[which]] does lines, text, and nested canvases" in the [starkit] at http://noucorp.com/postcard . Another well-worn pathway involves [transforming HTML to PDF]. ---- [GS] (031129) There is a simple C source code to convert text file in PDF at http://wwwvms.mppmu.mpg.de/vmssig/src/c/TXT2PDF.C ---- 2004-01-13 [VI] There are two problems I face. One is that PDF is page based (like PostScript), so pagination is the application's headache. Add headers, footers, tables that span pages, and this soon gets to be like a mini typesetting program. Doing a canvas on one page (modulo the next para) or a text widget onto one page seems doable. The other is that I haven't figured out how to wrap text consistently. e.g. if a text item uses the -width option in the canvas, then I don't know how to decide where to break the text. I have read about this, and I've heard that this is possible in 8.4.5 or 8.5, but I still don't know how. ---- Frank Richter did a pure tcl package '''pdf4tcl''' (see [http://truckle.in-chemnitz.de/pdf4tcl/pdf4tcl.html]), which started as a port of pdf4php. It has a tclish and easy to use interface, but does only support a subset of pdf features. Hmm - if Frank could be persuaded to change the license to BSD, that would be a good addition to tcllib. ---- [ImageMagic] contains '''import''' tool, which can be executed by [exec], so we can import [wish] window and save it as PDF. We can also use [TclMagic] instead of [exec]. ---- [Category Acronym] | [Category Documentation]