vorrei aggiungere un testo generato dinamicamente. C'è un modo per filigranare un PDF esistente in Ruby?Watermark in PDF esistente in Ruby
risposta
Questo lo farà:
PDF::Reader
per contare il numero di pagine del file.
Prawn
per creare un nuovo documento PDF utilizzando ogni pagina del PDF in ingresso come modello.
require 'prawn'
require 'pdf-reader'
input_filename = 'input.pdf'
output_filename = 'output.pdf'
page_count = PDF::Reader.new(input_filename).page_count
Prawn::Document.generate(output_filename, :skip_page_creation => true) do |pdf|
page_count.times do |num|
pdf.start_new_page(:template => input_filename, :template_page => num+1)
pdf.text('WATERMARK')
end
end
Tuttavia, a mio testare la dimensione del file di output era enorme con l'ultima versione di Gemma Prawn (0,12), ma dopo aver sottolineato il mio Gemfile al ramo principale su GitHub, tutto ha funzionato bene.
Check out Prawn (http://github.com/sandal/prawn) per rubino e Prawnto (http://github.com/thorny-sun/prawnto) per Ruby on Rails.
probabilmente stai andando a voler usare sia per l'immagine incorporare la funzionalità o la funzionalità di immagine di sfondo.
Ecco un esempio di utilizzo di un'immagine di sfondo http://cracklabs.com/prawnto/code/prawn_demos/source/general/background
Prawn è solo in grado di incorporare immagini in un pdf fresco creato con gambero non esistente ... quindi non funziona per me. – Mike
ah, manca la * parte * esistente nel tuo post. Mi dispiace per quello Non credo che ci sia, a meno che non lo si convertisse in un'immagine e poi la filigrana. –
In realtà, sembra che Prawn possa modificare un PDF esistente se si utilizza quel PDF come modello: http://groups.google.com/group/prawn-ruby/browse_thread/thread/a8dd9bb83d2c2abd?pli = 1 & https://github.com/yob/prawn/tree/templates_2010. Non li ho usati personalmente, ma le informazioni sembrano piuttosto recenti? –
Un'altra opzione è quella di utilizzare PDFTK. Può essere usato per aggiungere una filigrana e creare un nuovo PDF. Forse i gamberi faranno la stessa cosa con il suo modello.
pdftk in.pdf background arecibo.pdf output wmark1.pdf
qualche informazione in più: http://rhodesmill.org/brandon/2009/pdf-watermark-margins/
C'è una gemma rubino involucro chiamato active_pdftk che supporta backgrounding, in modo da non dovete fare i comandi di shell da soli.
Prawn non supporta i modelli più ...
provare il combine_pdf gem.
È possibile combinare, filigrana, numero di pagina e aggiungere testo semplice ai file PDF esistenti (inclusa la creazione di un semplice sommario senza collegamenti PDF).
È una libreria PDF molto semplice e di base, scritta in puro Ruby senza dipendenze.
Questo esempio può andare bene la vostra situazione (è dal file readme):
# load the logo as a pdf page
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
# load the content file
pdf = CombinePDF.load "content_file.pdf"
# inject the logo to each page in the content
pdf.pages.each {|page| page << company_logo}
# save to a new file, with the logo.
pdf.save "content_with_logo.pdf"
- 1. estrarre il testo da PDF (devo link PDF) in Ruby
- 2. Come sostituire una parola in un PDF esistente usando Ruby Prawn?
- 3. PHP - Watermark PNG Transparency/Alpha
- 4. ITextSharp inserisce il testo in un pdf esistente
- 5. Utilizzo di fpdf per modificare il pdf esistente in php
- 6. Unisci PDF esistente nel nuovo ReportLab PDF via flowable
- 7. Come incorporare OCR esterno nel PDF esistente?
- 8. Aggiungere testo a PDF esistente usando Python
- 9. tcpdf - inizia con il documento PDF esistente
- 10. Come posso impostare un'immagine in un campo pdf nel file pdf esistente?
- 11. Modificare file PDF esistente utilizzando FPDF
- 12. Come disconnettere una connessione sequel esistente ruby in un database?
- 13. Verificare la directory esistente non riesce in Ruby + Chef
- 14. Come aggiungere a un hash esistente in Ruby
- 15. JavaScript "watermark" per caselle di testo
- 16. esportazione in Excel, pdf e doc utilizzando Ruby on Rails
- 17. Come posso modificare l'orientamento del pdf esistente usando prawn?
- 18. iText - Come stampare un'immagine su PDF esistente e creare un'ancora
- 19. iTextSharp Sostituisci testo nel PDF esistente senza perdere la formazione
- 20. Inserire la pagina nel PDF esistente utilizzando itextsharp
- 21. Aggiungi un valore in un oggetto hash (in Ruby), utilizzando una chiave già esistente?
- 22. Sostituisci immagine in PDF con un'altra immagine box in pdf
- 23. Ruota di una singola pagina di 90 gradi con iTextSharp/VB in un PDF multipagina esistente
- 24. Canonicalizing XML in Ruby
- 25. Recupera PDF in LaTeX
- 26. Converti PDF in HTML
- 27. Miniature PDF in Delphi
- 28. PDF incorporato in IE10
- 29. Rendering PDF in Rmarkdown2/
- 30. ITextSharp HTML in PDF?
Puoi passare l'opzione ': template' a' Prawn :: Document' e quindi scorrere semplicemente le pagine in questo modo. Ciò manterrà la dimensione del file di output molto più vicina alla dimensione del file di input. – siannopollo
Prawn non supporta più la modifica/combinazione di due PDF in uno. Controlla la risposta di @Myst per una soluzione aggiornata. –