Programmer les en-têtes et pieds de page PDF en Java

Programmer les en-têtes et pieds de page PDF en Java Free Spire.PDF pour Java, une bibliothèque de classes qui vous permet de créer des documents PDF directement à partir de programmes Java sans installer de logiciel supplémentaire. Vous pouvez facilement créer des fichiers PDF à l'aide de cette bibliothèque. Créez simplement un objet PDFDocument, créez autant d'objets PDFabageBase que vous le souhaitez, dessinez des chaînes, des images, des tableaux, des listes, des en-têtes, des pieds de page et d'autres éléments sur la page et enregistrez le document. Cette instruction ajoute des en-têtes et des pages lors de la création d'un document Spire.PDF pour Java PDF.

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 {

        //Créer un objet PDFDocument
        PdfDocument doc = new PdfDocument();
        //Définir les marges
        PdfMargins margin = new PdfMargins(60,60,40,40);
        //Méthode addheaderandfooter()Pour ajouter des en-têtes et des pieds de page.
        addHeaderAndFooter(doc, PdfPageSize.A4, margin);
        //Ajoutez une page à votre document PDF et dessinez une chaîne.
        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);
        //Sauvegarder le document
        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);

      //Dessin de l'étiquette d'en-tête
      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);

      //Dessinez un champ dynamique comme pied de page
      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

Programmer les en-têtes et pieds de page PDF en Java
Cryptage et décryptage Java PDF
Programme Null-safe en Java (Eclipse)
J'ai créé un PDF avec Java.
Classe StringBuffer et StringBuilder en Java
Sortie PDF et TIFF avec Java 8
Comprendre equals et hashCode en Java
Java dessine des formes dans des documents PDF
Bonjour tout le monde en Java et Gradle
Différence entre final et immuable en Java
Différence entre les listes d'arry et les listes liées en Java
Apprenez les modèles Flyweight et ConcurrentHashMap en Java
La direction de Java dans "C ++ Design and Evolution"
De Java à C et de C à Java dans Android Studio
Lire et écrire des fichiers gzip en Java
Différence entre int et Integer en Java
Discrimination d'énum dans Java 7 et supérieur
J'ai créé un programme de jugement des nombres premiers en Java
Concernant les modificateurs transitoires et la sérialisation en Java
Lire une chaîne dans un fichier PDF avec Java
Détecter des vidéos similaires dans Java et OpenCV rev.2
Partition en Java
Traitement parallèle et parallèle dans divers langages (édition Java)
Différence entre next () et nextLine () dans Java Scanner
Changements dans Java 11
Janken à Java
Différences dans l'écriture des classes Java, C # et Javascript
J'ai écrit un programme de jugement des nombres premiers en Java
Extraction de texte en Java à partir de PDF avec pdfbox-2.0.8
Capture et sauvegarde de l'installation de sélénium en Java
Ajouter, lire et supprimer des commentaires Excel à l'aide de Java
Vérifier le comportement statique et public dans les méthodes Java
[Java] Comprenez en 10 minutes! Tableau associatif et HashMap
Java et JavaScript
XXE et Java
Distinguer les nombres positifs et négatifs en Java
Java ajoute et supprime les filigranes dans les documents Word
Détecter des vidéos similaires dans Java et OpenCV rev.1
J'ai écrit un programme de factorisation prime en Java
Taux circonférentiel à Java
Représente le «jour suivant» et le «jour précédent» en Java / Android
Questions sur la gestion des exceptions Java throw et try-catch
Télécharger et télécharger des notes en java sur S3
Crypter / décrypter avec AES256 en PHP et Java
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
FizzBuzz en Java
Comparez la sortie PDF en Java pour les tests d'instantanés
Java permet l'extraction de texte et d'images PDF
[LeJOS] Programmons mindstorm-EV3 avec Java [Construction de l'environnement partie 2]
[Android / Java] Transition d'écran et traitement de retour par fragments
Essayé l'API Toot et Streaming de Mastodon en Java
Écrivez ABNF en Java et transmettez l'adresse e-mail
Organiser les builds dans des combinaisons C ++ / Java et Win / Linux
Vectoriser et imager les données d'images numériques manuscrites MNIST avec Java
Exporter le pdf avec un programme autonome (Java / Perl / VBA)
Ecrire une classe en Kotlin et l'appeler en Java
[Java] Différence entre statique final et final dans les variables membres