[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

PDF::Writer, embedding non-PNGs

Bertram Scharpf

12/19/2007 9:12:00 AM

Hi,


the PDF::Writer documentation reads:

add_image(image, x, y, ...)

Add an image from a loaded image (JPEG or PNG) resource ...
^^^^ ^^^

The image I want to embed is in PostScript. In concrete, it is the
output of the GNU barcode tool.

Is there any smarter way to embed it than to convert it to a pixel image
without knowing the printers resolution?

Thanks in advance,

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...

4 Answers

Axel Etzold

12/19/2007 11:27:00 AM

0


-------- Original-Nachricht --------
> Datum: Wed, 19 Dec 2007 18:11:33 +0900
> Von: Bertram Scharpf <lists@bertram-scharpf.de>
> An: ruby-talk@ruby-lang.org
> Betreff: PDF::Writer, embedding non-PNGs

> Hi,
>
>
> the PDF::Writer documentation reads:
>
> add_image(image, x, y, ...)
>
> Add an image from a loaded image (JPEG or PNG) resource ...
> ^^^^ ^^^
>
> The image I want to embed is in PostScript. In concrete, it is the
> output of the GNU barcode tool.
>
> Is there any smarter way to embed it than to convert it to a pixel image
> without knowing the printers resolution?
>
> Thanks in advance,
>
> Bertram
>
>
> --
> Bertram Scharpf
> Stuttgart, Deutschland/Germany
> http://www.bertram-...

Dear Bertram,

from PDF::Writer's documentation,

(http://www.artima.com/rubycs/articles/pdf_wr... and
Changelog in pdf-writer-1.1.7)

it seems that it doesn't yet support any vector graphics or eps file support.
An alternative, -- non-Ruby -- way would be to use latex to embed eps
files and create a pdf from there, modifying the template.tex
file with the entries for creating images, given in this tutorial:

http://www.pages.drexel.edu/~pyo22/students/latexRelated/latexTut...

That webpage is now a bit dated, so for the installation of latex,
I'd rather recommend this:

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&am...

Use the command 'xelatex' from the xetex package on the source file
created. I think it will output a pdf straight away.

Best regards,

Axel


--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessen...

Bertram Scharpf

12/19/2007 12:52:00 PM

0

Hi,

Am Mittwoch, 19. Dez 2007, 20:26:57 +0900 schrieb Axel Etzold:
> -------- Original-Nachricht --------
> > Datum: Wed, 19 Dec 2007 18:11:33 +0900
> > Von: Bertram Scharpf <lists@bertram-scharpf.de>
>
> > the PDF::Writer documentation reads:
> >
> > add_image(image, x, y, ...)
> >
> > Add an image from a loaded image (JPEG or PNG) resource ...
> > ^^^^ ^^^
> >
> > The image I want to embed is in PostScript. In concrete, it is the
> > output of the GNU barcode tool.
> >
> > Is there any smarter way to embed it than to convert it to a pixel image
> > without knowing the printers resolution?
>
> it seems that it doesn't yet support any vector graphics or eps file support.
> An alternative, -- non-Ruby -- way would be to use latex to embed eps
> files and create a pdf from there, modifying the template.tex
> file with the entries for creating images, given in this tutorial:

This is very disappointing. I expected it were at least possible to
embed another PDF document on the page.

One further way failed as well: I found a Code39 barcode font on the web
as a TrueType font. Trying to embed it as described in the manual yields
the fatal message:

/usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:878:in `load_font': undefined local variable or method `fbfile' for #<PDF::Writer:0xb788ad6c> (NameError)

This seems to be a severe bug as the variable `fbfile' doesn't appear
anywhere else in the whole /usr/lib/ruby tree.

It seems that TeX still remains the only real typesetting system.

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...

Austin Ziegler

12/19/2007 1:11:00 PM

0

On 12/19/07, Bertram Scharpf <lists@bertram-scharpf.de> wrote:
> One further way failed as well: I found a Code39 barcode font on the web
> as a TrueType font. Trying to embed it as described in the manual yields
> the fatal message:
>
> /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:878:in `load_font': undefined local variable or method `fbfile' for #<PDF::Writer:0xb788ad6c> (NameError)

PDF::Writer 1.1.3 is not the most recent version. I believe that Greg
and Michael fixed some font bugs.

Your expectation (of being able to embed EPS or another PDF) is
unrealistic given the reality of the internal implementation of PDF.
If you can grab the drawing instructions from an EPS (not hard, and
can be programmed), you can insert them directly into an object stream
on a PDF. (I've actually done this, manually.)

-austin

Bertram Scharpf

12/21/2007 4:55:00 PM

0

Hi,

Am Mittwoch, 19. Dez 2007, 22:10:53 +0900 schrieb Austin Ziegler:
> On 12/19/07, Bertram Scharpf <lists@bertram-scharpf.de> wrote:
> > One further way failed as well: I found a Code39 barcode font on the web
> > as a TrueType font. Trying to embed it as described in the manual yields
> > the fatal message:
> >
> > /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:878:in `load_font': undefined local variable or method `fbfile' for #<PDF::Writer:0xb788ad6c> (NameError)
>
> PDF::Writer 1.1.3 is not the most recent version. I believe that Greg
> and Michael fixed some font bugs.

Sorry, both Gentoo and FreeBSD install 1.1.3 by default.

/local/gems/pdf-writer-1.1.7/lib/pdf/writer.rb:844:in `load_font': undefined local variable or method `fbfile' for #<PDF::Writer:0xb77e2400> (NameError)

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...