W tym artykule dowiesz się, jak programowo utworzyć plik PDF od podstaw w Javie.

Twórz dokumenty PDF za pomocą języka Java

PDF stał się powszechnie używanym formatem plików do tworzenia różnych typów dokumentów. Różne branże przyjęły automatyzację PDF do generowania dokumentów, takich jak paragony, faktury, raporty biznesowe itp. Mając oko na takie scenariusze, w tym artykule opisano, jak tworzyć pliki PDF w Javie. Przykłady kodu zademonstrują, jak utworzyć plik PDF od podstaw i wstawić tekst, obrazy, tabele i inne elementy w tym pliku PDF w Javie.

Java API do tworzenia plików PDF — bezpłatne pobieranie

Aspose.PDF for Java to interfejs API do manipulowania plikami PDF, który umożliwia tworzenie plików PDF z poziomu aplikacji Java. Korzystając z API, możesz tworzyć zarówno proste, jak i złożone dokumenty PDF. Aspose.PDF for Java można pobrać jako JAR lub zainstalować w aplikacjach opartych 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>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

Utwórz plik PDF w Javie

Poniżej przedstawiono kroki, aby wygenerować prosty plik PDF od podstaw i wstawić do niego fragment tekstu.

Poniższy przykładowy kod pokazuje, jak utworzyć plik PDF przy użyciu języka Java.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Zainicjuj obiekt dokumentu
Document document = new Document();
 
//Dodaj stronę
Page page = document.getPages().add();
 
// Dodaj tekst do nowej strony
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Zapisz zaktualizowany plik PDF
document.save("HelloWorld_out.pdf");

Utwórz plik PDF z formatowaniem tekstu w Javie

Sprawdźmy teraz, jak zastosować formatowanie do tekstu w dokumencie PDF. Formatowanie tekstu może obejmować czcionkę, rozmiar czcionki, kolor, położenie itp. Poniżej przedstawiono kroki, aby wykonać tę operację.

  • Użyj klasy Document, aby utworzyć nowy dokument PDF lub załadować istniejący.
  • Przejdź do Strony, na której chcesz umieścić tekst.
  • Utwórz obiekt TextFragment, aby ustawić tekst i inne opcje formatowania, takie jak pozycja, czcionka, kolor, rozmiar itp.
  • Użyj klasy TextBuilder, aby dodać obiekt TextFragment do strony.
  • Użyj metody Document.save(String), aby zapisać dokument PDF.

Poniższy przykładowy kod pokazuje, jak utworzyć plik PDF i zastosować formatowanie tekstu przy użyciu języka Java.

// Załaduj dokument PDF
Document document = new Document();

// Dodaj stronę
Page page = document.getPages().add();

// Utwórz fragment tekstu
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));

// Ustaw właściwości tekstu
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);

// Utwórz nowy kolor z przestrzenią kolorów wzoru
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// Utwórz obiekt TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Dołącz fragmenty tekstu do strony PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// Zapisz dokument PDF
document.save("Generated-PDF.pdf");

Java Twórz pliki PDF z obrazem

Poniżej przedstawiono kroki, aby wstawić obraz do pliku PDF przy użyciu Aspose.PDF dla języka Java.

  • Utwórz obiekt Document, aby utworzyć lub otworzyć dokument PDF.
  • Pobierz stronę, do której chcesz dodać obraz w obiekcie Page.
  • Dodaj obraz do kolekcji Page.getResources().
  • Użyj operatorów, aby umieścić obraz na stronie:
    • GZapisz operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Robić operator to draw the image on the page.
    • Na koniec użyj operatora GRestore, aby zapisać zaktualizowany stan graficzny.
  • Zapisz plik PDF.

Poniższy przykładowy kod pokazuje, jak wstawić obraz do pliku PDF w Javie.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz dokument
Document pdfDocument1 = new Document("input.pdf");

// Ustaw współrzędne
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Pobierz stronę, do której chcesz dodać obraz
Page page = pdfDocument1.getPages().get_Item(1);

// Załaduj obraz do strumienia
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Dodaj obraz do kolekcji obrazów zasobów strony
page.getResources().getImages().add(imageStream);

// Użycie operatora GSave: ten operator zapisuje aktualny stan grafiki
page.getContents().add(new Operator.GSave());

// Twórz obiekty prostokątne i macierzowe
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() });

// Używając operatora ConcatenateMatrix (matryca konkatenacyjna): określa sposób umieszczenia obrazu
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Użycie operatora Do: ten operator rysuje obraz
page.getContents().add(new Operator.Do(ximage.getName()));

// Używając operatora GRestore: ten operator przywraca stan grafiki
page.getContents().add(new Operator.GRestore());

// Zapisz nowy plik PDF
pdfDocument1.save("Updated_document.pdf");

// Zamknij strumień obrazów
imageStream.close();

Utwórz tabelę w pliku PDF w Javie

Tabela to dobry sposób organizowania danych w postaci wierszy i kolumn. Aspose.PDF pozwala dość łatwo wstawić tabelę do dokumentu PDF. Poniżej przedstawiono kroki tworzenia tabeli.

  • Załaduj plik źródłowy przy użyciu klasy Document.
  • Zainicjuj Tabelę i ustaw jej kolumny i wiersze.
  • Ustaw ustawienie stołu (np. obramowania).
  • Wypełnij tabelę, dodając do niej wiersze.
  • Dodaj tabelę do strony.
  • Zapisz plik PDF.

Poniższy przykładowy kod pokazuje, jak utworzyć tabelę w plikach PDF w Javie.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Załaduj źródłowy dokument PDF
Document doc = new Document(dataDir + "input.pdf");
// Inicjuje nowe wystąpienie Table
Table table = new Table();
// Ustaw kolor obramowania tabeli na LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// ustawić obramowanie komórek tabeli
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// utwórz pętlę, aby dodać 10 wierszy
for (int row_count = 1; row_count < 10; row_count++) {
	// dodaj wiersz do tabeli
	Row row = table.getRows().add();
	// dodaj komórki tabeli
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Dodaj obiekt tabeli do pierwszej strony dokumentu wejściowego
doc.getPages().get_Item(1).getParagraphs().add(table);
// Zapisz zaktualizowany dokument zawierający obiekt tabeli
doc.save(dataDir + "document_with_table.pdf");

Utwórz formularz w pliku PDF w Javie

Format PDF obsługuje również dodawanie formularzy w celu zbierania danych wejściowych od użytkowników. Formularz może zawierać różnego rodzaju pola, takie jak pola tekstowe, przyciski opcji itp. Poniższe kroki pokazują, jak wstawić prosty formularz do pliku PDF.

Poniższy przykładowy kod pokazuje, jak utworzyć formularz w pliku PDF w Javie.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz dokument
Document pdfDocument = new Document("input.pdf");

// Utwórz pole
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// Ustaw nazwę pola
textBoxField1.setPartialName("textbox1");

// Ustaw wartość pola
textBoxField1.setValue("Text Box");

// Utwórz obiekt obramowania
Border border = new Border(textBoxField1);

// Ustaw szerokość obramowania
border.setWidth(5);

// Ustaw styl kreski granicznej
border.setDash(new Dash(1, 1));

// Ustaw granicę pola
textBoxField1.setBorder(border);

// Dodaj pole do dokumentu
pdfDocument.getForm().add(textBoxField1, 1);

// Zapisz zmodyfikowany plik PDF
pdfDocument.save("output.pdf");

Przeczytaj więcej o polach formularza za pomocą tutaj.

Wstaw zakładki do pliku PDF w Javie

Poniżej przedstawiono kroki dodawania zakładek w pliku PDF.

  • Otwórz dokument PDF za pomocą obiektu Document.
  • Dodaj konspekty dokumentów do kolekcji OutlineItemCollection.
  • Ustaw numer strony docelowej.
  • Dodaj zakładkę do zbioru konspektu dokumentu.
  • Zapisz plik PDF.

Poniższy przykładowy kod pokazuje, jak wstawić zakładki w pliku PDF przy użyciu języka Java.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otwórz źródłowy dokument PDF
Document pdfDocument = new Document("input.pdf");

// Utwórz obiekt zakładki
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Ustaw numer strony docelowej
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Dodaj zakładkę w zbiorze konspektu dokumentu.
pdfDocument.getOutlines().add(pdfOutline);

// Zapisz dokument aktualizacji
pdfDocument.save("output.pdf");

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyłeś się tworzyć pliki PDF od podstaw w Javie. Ponadto przykłady kodu Java pokazały, jak wstawiać tekst, obrazy, tabele, formularze i zakładki w nowych lub istniejących plikach PDF. Możesz dowiedzieć się więcej o interfejsie Java PDF API, korzystając z dokumentacji.

Zobacz też