Vytvářejte dokumenty PDF pomocí Java

Jako programátor možná budete muset v určité fázi vytvořit soubory PDF v aplikacích Java. Například pro generování účtenek, faktur, obchodních zpráv atd. K dispozici jsou různé knihovny Java PDF, které umožňují vytvářet soubory PDF od začátku. Tento článek vám však poskytne výkonnou, vysokorychlostní a vysoce kvalitní knihovnu Java pro vytváření souborů PDF, která vyžaduje, abyste napsali minimální řádky kódu.

Pojďme se tedy podívat, jak vytvořit PDF soubory od začátku v Javě. Podívejme se také na to, jak programově vložit text, obrázky, tabulky a další prvky do dokumentu PDF.

Java PDF knihovna

K vytváření a manipulaci se soubory PDF použijeme Aspose.PDF for Java. Je to knihovna pro manipulaci se soubory PDF pro vytváření bohatých souborů PDF bez psaní složitého kódu. Pomocí knihovny můžete vytvářet jednoduché i složité dokumenty PDF. Můžete také získat bezplatnou licenci a vygenerovat požadované soubory PDF.

Aspose.PDF pro Javu lze stáhnout jako JAR nebo nainstalovat do aplikací založených na Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.11</version>
    <classifier>jdk17</classifier>
</dependency>

Jak vytvořit PDF v Javě

Následují kroky k vytvoření jednoduchého souboru PDF od začátku a vložení části textu do něj.

Následující ukázka kódu ukazuje, jak vytvořit soubor PDF v Javě.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Inicializovat objekt dokumentu
Document document = new Document();
 
//Přidat stránku
Page page = document.getPages().add();
 
// Přidejte text na novou stránku
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Uložit aktualizované PDF
document.save("HelloWorld_out.pdf");

Java generování PDF s formátováním textu

Pojďme se nyní podívat, jak použít formátování na text v dokumentu PDF. Formátování textu může zahrnovat písmo, velikost písma, barvu, polohu atd. Níže jsou uvedeny kroky k provedení této operace.

  • Pomocí třídy Document vytvořte nový dokument PDF nebo načtěte existující.
  • Přejděte na stránku, na kterou chcete umístit text.
  • Vytvořte objekt TextFragment pro nastavení textu a dalších možností formátování, jako je poloha, písmo, barva, velikost atd.
  • Pomocí třídy TextBuilder přidejte na stránku objekt TextFragment.
  • K uložení dokumentu PDF použijte metodu Document.save(String).

Následující ukázka kódu ukazuje, jak vygenerovat soubor PDF a použít formátování textu pomocí Java.

// Načíst dokument PDF
Document document = new Document();

// Přidat stránku
Page page = document.getPages().add();

// Vytvořte fragment textu
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// Nastavte vlastnosti textu
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// Vytvořte novou barvu pomocí barevného prostoru vzoru
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// Vytvořte objekt TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Připojte fragmenty textu na stránku PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// Uložte dokument PDF
document.save("Generated-PDF.pdf");

Generujte soubory PDF s obrázkem v Javě

Následují kroky pro vložení obrázku do souboru PDF pomocí Aspose.PDF for Java.

  • Chcete-li vytvořit nebo otevřít dokument PDF, vytvořte objekt Document.
  • Získejte stránku, na kterou chcete přidat obrázek, v objektu Page.
  • Přidejte obrázek do kolekce Page.getResources().
  • Pomocí operátorů umístěte obrázek na stránku:
    • GUložit operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Dělat operator to draw the image on the page.
    • Nakonec použijte operátor GRestore k uložení aktualizovaného grafického stavu.
  • Uložte soubor PDF.

Následující ukázka kódu ukazuje, jak vložit obrázek do souboru PDF v Javě.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument1 = new Document("input.pdf");

// Nastavte souřadnice
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Získejte stránku, na kterou chcete přidat obrázek
Page page = pdfDocument1.getPages().get_Item(1);

// Načíst obrázek do streamu
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Přidejte obrázek do kolekce Obrázky zdrojů stránky
page.getResources().getImages().add(imageStream);

// Použití operátoru GSave: tento operátor uloží aktuální grafický stav
page.getContents().add(new Operator.GSave());

// Vytvářejte objekty obdélníku a matice
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// Použití operátoru ConcatenateMatrix (matice zřetězení): definuje, jak musí být obrázek umístěn
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Použití operátoru Do: tento operátor kreslí obrázek
page.getContents().add(new Operator.Do(ximage.getName()));

// Použití operátoru GRestore: tento operátor obnovuje stav grafiky
page.getContents().add(new Operator.GRestore());

// Uložte nový PDF
pdfDocument1.save("Updated_document.pdf");

// Zavřít stream obrázku
imageStream.close();

Vytvořte tabulku v souboru PDF v Javě

Tabulka je skvělý způsob, jak organizovat data ve formě řádků a sloupců. Aspose.PDF umožňuje poměrně snadno vložit tabulku do dokumentu PDF.

Níže jsou uvedeny kroky k vytvoření tabulky PDF v Javě.

  • Načtěte zdrojový soubor pomocí třídy Document.
  • Inicializujte Tabulku a nastavte její sloupce a řádky.
  • Nastavit nastavení tabulky (např. okraje).
  • Naplňte tabulku přidáním řádků.
  • Přidejte tabulku na stránku.
  • Uložte soubor PDF.

Následující ukázka kódu ukazuje, jak vložit tabulku do PDF v Javě.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Načíst zdrojový dokument PDF
Document doc = new Document(dataDir + "input.pdf");
// Inicializuje novou instanci tabulky
Table table = new Table();
// Nastavte barvu okraje tabulky jako LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// nastavit ohraničení buněk tabulky
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// vytvořte smyčku pro přidání 10 řádků
for (int row_count = 1; row_count < 10; row_count++) {
	// přidat řádek do tabulky
	Row row = table.getRows().add();
	// přidat buňky tabulky
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Přidejte objekt tabulky na první stránku vstupního dokumentu
doc.getPages().get_Item(1).getParagraphs().add(table);
// Uložte aktualizovaný dokument obsahující objekt tabulky
doc.save(dataDir + "document_with_table.pdf");

Vytvořte formulář v PDF v Javě

Formát PDF také podporuje přidávání formulářů ke shromažďování vstupů od uživatelů. Formulář může obsahovat různé typy polí, jako jsou textová pole, přepínače atd. Následující kroky ukazují, jak vložit jednoduchý formulář do souboru PDF.

Následující ukázka kódu ukazuje, jak vytvořit formulář v souboru PDF v Javě.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument = new Document("input.pdf");

// Vytvořte pole
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// Nastavte název pole
textBoxField1.setPartialName("textbox1");

// Nastavte hodnotu pole
textBoxField1.setValue("Text Box");

// Vytvořte okrajový objekt
Border border = new Border(textBoxField1);

// Nastavte šířku okraje
border.setWidth(5);

// Nastavte styl čárky ohraničení
border.setDash(new Dash(1, 1));

// Nastavte hranici pole
textBoxField1.setBorder(border);

// Přidejte pole do dokumentu
pdfDocument.getForm().add(textBoxField1, 1);

// Uložte upravené PDF
pdfDocument.save("output.pdf");

Přečtěte si více o polích formuláře pomocí zde.

Java: Generování PDF se záložkami

Níže jsou uvedeny kroky pro přidání záložek do souboru PDF.

  • Otevřete dokument PDF pomocí objektu Document.
  • Přidejte obrysy dokumentů do kolekce OutlineItemCollection.
  • Nastavte číslo cílové stránky.
  • Přidejte záložku do kolekce osnovy dokumentu.
  • Uložte soubor PDF.

Následující ukázka kódu ukazuje, jak vložit záložky do PDF pomocí Java.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete zdrojový dokument PDF
Document pdfDocument = new Document("input.pdf");

// Vytvořte objekt záložky
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Nastavte číslo cílové stránky
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Přidejte záložku do kolekce osnovy dokumentu.
pdfDocument.getOutlines().add(pdfOutline);

// Uložte aktualizační dokument
pdfDocument.save("output.pdf");

Bezplatná knihovna Java PDF Generation Library

Můžete získat bezplatnou dočasnou licenci a generovat soubory PDF od začátku bez jakýchkoli omezení.

Prozkoumejte Java PDF Library

Více o Java PDF API můžete prozkoumat pomocí dokumentace.

Závěr

V tomto článku jste se naučili, jak vytvářet soubory PDF od začátku v Javě. Kromě toho ukázky kódu Java demonstrovaly, jak vkládat text, obrázky, tabulky, formuláře a záložky do nových nebo stávajících souborů PDF. Knihovnu můžete snadno nainstalovat do aplikace a vygenerovat požadované soubory PDF.

Viz také