Prawn
Rychlé generování PDF prostřednictvím Open Source Ruby Library
bezplatné rozhraní Ruby PDF API, které umožňuje programátorům vytvářet a upravovat soubory PDF; vkládat, upravovat grafiku a kreslit text na stránku PDF v Ruby Apps.
Portable Document Format (PDF) je velmi oblíbený spolehlivý a bezpečný formát souborů pro prezentaci, sdílení a tisk souborů po celém světě. Open source knihovna Ruby Prawn poskytla kompletní funkčnost pro práci s dokumenty PDF pomocí knihovny Ruby. Knihovna se velmi snadno používá a je dobře zdokumentovaná, což usnadňuje práci vývojáře. Pomáhá vývojářům snadno vytvořit vysoce flexibilní systém generování dokumentů PDF.
Knihovna Krevety obsahuje několik důležitých funkcí, které umožňují vývojářům softwaru snadno pracovat s dokumenty PDF, jako je tvorba PDF od začátku, vkládání obrázků PNG a JPG, přidání vektorových kreseb do PDF, použití vestavěných písem a písem TrueType, podpora šifrování , zabezpečení dokumentu PDF pomocí hesla, podpora vykreslování textu, podpora písem založených na UTF-8, vykreslování textu zprava doleva, podpora obrysů a mnoho dalších.
Začínáme s krevetami
Chcete-li nainstalovat krevety do vašeho systému, spusťte následující příkaz,
Nainstalujte krevety přes RubyGems
gem install prawn
Vytvářejte soubory PDF prostřednictvím knihovny Ruby
Open source knihovna Ruby Prawn umožňuje vývojářům softwaru programově vytvářet dokumenty PDF pomocí několika řádků kódu Ruby. Knihovna poskytuje 3 různé způsoby vytváření dokumentů PDF s výchozím nastavením a písmy. Ty jsou prostřednictvím přiřazení, implicitního bloku nebo explicitního bloku. Po vytvoření můžete snadno přistupovat ke každé části dokumentu PDF a upravovat je. Můžete snadno přidat novou stránku, nastavit velikost stránky a okraje, změnit styly písma, použít formátování a mnoho dalšího.
Vytvářejte a vykreslujte soubor PDF přes Ruby
# Using explicit block form and rendering to a file
content = "Hello World"
Prawn::Document.generate "example.pdf" do |pdf|
# self here is left alone
pdf.font "Times-Roman"
pdf.draw_text content, :at => [200,720], :size => 32
end
Vkládání a úprava grafiky uvnitř souborů PDF
Knihovna Prawn dává vývojářům softwaru možnost přidávat vektorové kresby do svých dokumentů PDF pomocí kódu Ruby. Vývojáři mohou snadno kreslit čáry, mnohoúhelníky, křivky, kruhy atd. na libovolné místo na stránce PDF. Knihovna obsahuje několik důležitých funkcí pro práci s grafikou, jako jsou barvy výplně, použití stylů čárek a vzoru, nastavení tloušťky čáry a použití barvy, použití režimu prolnutí, použití transformace i průhlednosti a tak dále.
Použití obrázků v dokumentech PDF
Open source knihovna Ruby Prawn poskytuje podporu pro vkládání obrázků do souborů PDF pomocí příkazů Ruby. V současné době knihovna zahrnuje podporu obrázků JPEG a PNG. Pro správu obrázků v souboru PDF je k dispozici několik důležitých funkcí, jako je úprava polohy, podpora změny měřítka obrázku, samostatné nastavení šířky a výšky obrázku, proporcionální přizpůsobení obrázku a tak dále.
Generujte obrázek a měřítko, aby se vešel do PDF přes Ruby
Prawn::Document.generate("image2.pdf", :page_layout => :landscape) do
pigs = "#{Prawn::DATADIR}/images/pigs.jpg"
image pigs, :at => [50,450], :width => 450
dice = "#{Prawn::DATADIR}/images/dice.png"
image dice, :at => [50, 450], :scale => 0.75
end
Kreslení textu na stránku PDF
Knihovna Prawn umožňuje softwarovým profesionálům snadno kreslit text na stránku PDF v jejich aplikaci Ruby. Můžete snadno začít kreslit text na zadané pozici stránky PDF. Můžete snadno upravit polohu textu, otočit text podle svých potřeb, použít velikost písma, podporu jednoho řádku a více řádků a mnoho dalšího.
Kreslit text na stránku PDF prostřednictvím knihovny Ruby
def draw_text!(text, options)
unless font.unicode? || font.class.hide_m17n_warning || text.ascii_only?
warn "PDF's built-in fonts have very limited support for " \
"internationalized text.\nIf you need full UTF-8 support, " \
"consider using an external font instead.\n\nTo disable this " \
"warning, add the following line to your code:\n" \
"Prawn::Fonts::AFM.hide_m17n_warning = true\n"
font.class.hide_m17n_warning = true
end
x, y = map_to_absolute(options[:at])
add_text_content(text, x, y, options)
end