Programmieren Sie PDF-Kopf- und Fußzeilen in Java

Programmieren Sie PDF-Kopf- und Fußzeilen in Java Free Spire.PDF für Java, eine Klassenbibliothek, mit der Sie PDF-Dokumente direkt aus Java-Programmen erstellen können, ohne zusätzliche Software zu installieren. Mit dieser Bibliothek können Sie problemlos PDF-Dateien erstellen. Erstellen Sie einfach ein PDFDocument-Objekt, erstellen Sie so viele PDFabageBase-Objekte wie Sie benötigen, zeichnen Sie Zeichenfolgen, Bilder, Tabellen, Listen, Kopf- und Fußzeilen und andere Elemente auf der Seite und speichern Sie das Dokument. Diese Anweisung fügt beim Erstellen eines Spire.PDF für Java PDF-Dokuments Überschriften und Seiten hinzu.

Java


import java.awt.*;
import java.awt.geom.Dimension2D;
import com.spire.pdf.*;
import com.spire.pdf.automaticfields.PdfAutomaticField;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;

public class PDFHeaderFooter {
    public static void main(String[] args) throws Exception {

        //Erstellen Sie ein PDFDocument-Objekt
        PdfDocument doc = new PdfDocument();
        //Ränder einstellen
        PdfMargins margin = new PdfMargins(60,60,40,40);
        //Methode addheaderandfooter()Kopf- und Fußzeilen hinzufügen.
        addHeaderAndFooter(doc, PdfPageSize.A4, margin);
        //Fügen Sie Ihrem PDF-Dokument eine Seite hinzu und zeichnen Sie eine Zeichenfolge.
        PdfPageBase page1 = doc.getPages().add();
        PdfPageBase page2 = doc.getPages().add();
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", Font.PLAIN, 14));
        String text1 = "Demo of Spire.PDF";
        String text2 = "How to add header and footer to PDF in JAVA";
        page1.getCanvas().drawString(text1, font, PdfBrushes.getBlack(),0,0);
        page2.getCanvas().drawString(text2, font, PdfBrushes.getBlack(),0,0);
        //Speichern Sie das Dokument
        doc.saveToFile("output/headerFooter.pdf");
        doc.close();
    }
static void addHeaderAndFooter(PdfDocument doc, Dimension2D pageSize, PdfMargins margin) {

      PdfPageTemplateElement header = new PdfPageTemplateElement(margin.getLeft(), pageSize.getHeight());
      doc.getTemplate().setLeft(header);
      PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.getWidth(), margin.getTop());
      topSpace.setForeground(true);
      doc.getTemplate().setTop(topSpace);

      //Zeichnung des Header-Labels
      PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Arial",Font.PLAIN,12));
      PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
      String label = "E-iceblue Co.,Ltd";
      Dimension2D dimension2D = new Dimension();
      dimension2D.setSize(font.measureString(label, format));
      float y = topSpace.getHeight() - font.getHeight() - 1;
      PdfPen pen = new PdfPen(new PdfRGBColor(Color.black), 0.75f);
      topSpace.getGraphics().setTransparency(0.5f);
      topSpace.getGraphics().drawLine(pen, margin.getLeft(), y, pageSize.getWidth() - margin.getRight(), y);
      y = y - 1 - (float) dimension2D.getHeight();
      topSpace.getGraphics().drawString(label, font, PdfBrushes.getBlack(), margin.getLeft(), y, format);

      PdfPageTemplateElement rightSpace = new PdfPageTemplateElement(margin.getRight(), pageSize.getHeight());
      doc.getTemplate().setRight(rightSpace);

      //Zeichnen Sie ein dynamisches Feld als Fußzeile
      PdfPageTemplateElement footer = new PdfPageTemplateElement(pageSize.getWidth(), margin.getBottom());
      footer.setForeground(true);
      doc.getTemplate().setBottom(footer);

      y = font.getHeight() + 1;
      footer.getGraphics().setTransparency(0.5f);
      footer.getGraphics().drawLine(pen, margin.getLeft(), y, pageSize.getWidth() - margin.getRight(), y);
      y = y + 1;
      PdfPageNumberField pageNumber = new PdfPageNumberField();
      PdfPageCountField pageCount = new PdfPageCountField();
      PdfCompositeField pageNumberLabel = new PdfCompositeField();
      pageNumberLabel.setAutomaticFields(new PdfAutomaticField[]{pageNumber, pageCount});
      pageNumberLabel.setBrush(PdfBrushes.getBlack());
      pageNumberLabel.setFont(font);
      format = new PdfStringFormat(PdfTextAlignment.Right);
      pageNumberLabel.setStringFormat(format);
      pageNumberLabel.setText("page {0} of {1}");
      pageNumberLabel.setBounds(footer.getBounds());
      pageNumberLabel.draw(footer.getGraphics(), pageSize.getWidth() - margin.getLeft(), y);
  }
}

Header Fotter.png

Recommended Posts

Programmieren Sie PDF-Kopf- und Fußzeilen in Java
Java-Ver- und Entschlüsselung PDF
Nullsicheres Programm in Java (Eclipse)
Ich habe ein PDF mit Java erstellt.
StringBuffer- und StringBuilder-Klasse in Java
PDF und TIFF mit Java 8 ausgeben
Verstehe gleich und hashCode in Java
Java zeichnet Formen in PDF-Dokumenten
Hallo Welt in Java und Gradle
Unterschied zwischen final und Immutable in Java
Unterschied zwischen Arrylist und verknüpfter Liste in Java
Lernen Sie Flyweight-Muster und ConcurrentHashMap in Java
Die Richtung von Java in "C ++ Design and Evolution"
Von Java nach C und von C nach Java in Android Studio
Lesen und Schreiben von GZIP-Dateien in Java
Unterschied zwischen int und Integer in Java
Diskriminierung von Enum in Java 7 und höher
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Erkennen Sie ähnliche Videos in Java und OpenCV Version 2
Partisierung in Java
Parallele und parallele Verarbeitung in verschiedenen Sprachen (Java Edition)
Unterschied zwischen next () und nextLine () in Java Scanner
Änderungen in Java 11
Janken in Java
Unterschiede beim Schreiben von Java-, C # - und Javascript-Klassen
Ich habe ein Programm zur Beurteilung von Primzahlen in Java geschrieben
Textextraktion in Java aus PDF mit pdfbox-2.0.8
Erfassen und speichern Sie die Selen-Installation in Java
Hinzufügen, Lesen und Löschen von Excel-Kommentaren mit Java
Überprüfen Sie das statische und öffentliche Verhalten in Java-Methoden
[Java] Verstehe in 10 Minuten! Assoziatives Array und HashMap
Java und JavaScript
XXE und Java
Unterscheiden Sie in Java zwischen positiven und negativen Zahlen
Java fügt Wasserzeichen in Word-Dokumenten hinzu und entfernt sie
Erkennen Sie ähnliche Videos in Java und OpenCV Version 1
Ich habe ein Primfaktorisierungsprogramm in Java geschrieben
Umfangsrate in Java
Repräsentiert "nächster Tag" und "vorheriger Tag" in Java / Android
Fragen in Java-Ausnahmebehandlung werfen und versuchen-fangen
Laden Sie Notizen in Java auf S3 hoch und laden Sie sie herunter
Verschlüsseln / Entschlüsseln mit AES256 in PHP und Java
Generieren Sie OffsetDateTime aus Clock und LocalDateTime in Java
FizzBuzz in Java
Vergleichen Sie die PDF-Ausgabe in Java für Snapshot-Tests
Java ermöglicht die Extraktion von PDF-Text und Bildern
[LeJOS] Programmieren wir mindstorm-EV3 mit Java [Umgebungskonstruktion Teil 2]
[Android / Java] Bildschirmübergang und Rückgabeverarbeitung in Fragmenten
Versuchte Mastodons Toot- und Streaming-API in Java
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Organisieren Sie Builds in C ++ / Java- und Win / Linux-Kombinationen
Vektorisieren und bildgeben Sie handgeschriebene numerische MNIST-Bilddaten mit Java
PDF mit einem eigenständigen Programm (Java / Perl / VBA) exportieren
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
[Java] Unterschied zwischen statischem final und final in Mitgliedsvariablen