PDF Appender?

R

rpardee

Hey All,

Let's say I had a .pdf file and a .txt file, and I wanted to append
the contents of the text to the .pdf. The text doesn't have to look
pretty, it just has to be searchable (the pdf has an image of the text
in the text file).

I looked at PDF::Writer, but I'm not seeing a way to open an
existing .pdf. Have I missed it, or do I need to use some other
library or...?

Thanks!
 
A

Austin Ziegler

Let's say I had a .pdf file and a .txt file, and I wanted to append
the contents of the text to the .pdf. The text doesn't have to look
pretty, it just has to be searchable (the pdf has an image of the text
in the text file).

I looked at PDF::Writer, but I'm not seeing a way to open an
existing .pdf. Have I missed it, or do I need to use some other
library or...?

PDF::Writer cannot do this. There are non-Ruby solutions to do this
that you'll have to use.

-austin
 
K

Kouhei Sutou

Hi,

2007/3/1 said:
Let's say I had a .pdf file and a .txt file, and I wanted to append
the contents of the text to the .pdf. The text doesn't have to look
pretty, it just has to be searchable (the pdf has an image of the text
in the text file).

I looked at PDF::Writer, but I'm not seeing a way to open an
existing .pdf. Have I missed it, or do I need to use some other
library or...?

You can do the task with Ruby/Poppler, Ruby/Pango and rcairo:

---
surface = Cairo::pDFSurface.new(...)
context = Cairo::Context.new(surface)

document = Poppler::Document.new(...)
document.each do |page|
context.render_poppler_page(page)
context.show_page
end

text = File.read(...)
layout = context.create_pango_layout
layout.text = text
layout.width = ... * Pango::SCALE
context.show_pango_layout(layout)

context.show_page

surface.finish
---

Some sample scripts may help you:
http://ruby-gnome2.cvs.sourceforge.net/ruby-gnome2/ruby-gnome2/poppler/sample/
http://webcvs.cairographics.org/rcairo/samples/


Thanks,
 
R

rpardee

Hi,




You can do the task with Ruby/Poppler, Ruby/Pango and rcairo:

---
surface = Cairo::pDFSurface.new(...)
context = Cairo::Context.new(surface)

document = Poppler::Document.new(...)
document.each do |page|
context.render_poppler_page(page)
context.show_page
end

text = File.read(...)
layout = context.create_pango_layout
layout.text = text
layout.width = ... * Pango::SCALE
context.show_pango_layout(layout)

context.show_page

surface.finish
---

Some sample scripts may help you:
http://ruby-gnome2.cvs.sourceforge.net/ruby-gnome2/ruby-gnome2/popple...
http://webcvs.cairographics.org/rcairo/samples/

Thanks,

Ah, that looks very promising! I shall pursue those. Many thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,235
Messages
2,571,181
Members
47,818
Latest member
KazukoXea6

Latest Threads

Top