Ich will hinzufügen einer Zeile in einem PDF-Dokument mithilfe von java

Ich bin derzeit mit PDFBox Lesen aus und das innerhalb einer.pdf-Datei die sich im Ordner 1

Ich zuerst eine Liste mit allen Pdf-Dateien innerhalb der Ordner.
Dann überprüfe ich die Anzahl der Seiten, die jede Datei hat.
Nun will ich gehen, um ganz am Ende der Datei unten in der Fußzeile, um ein Bild hinzuzufügen, können anerkannt werden, die der Drucker für das Heften der Seiten, da Sie erkennen werden, dass es erreicht hat das Ende der Datei.

Ich angekommen bin, bis bekommen eine Liste der Dateien und die Anzahl der Seiten.

Welchen Befehl muss ich verwenden, um gehen zu Ende, die Letzte Seite und schreiben Sie dort.

Sollte ich verwandeln .pdf-Datei in text-oder
Sollte ich in der Lage sein zu verwenden PDPageContentStream

Dies ist der code den ich momentan verwende, bin ich versucht zu testen und sehen, ob eine AAA-string-eingefügte in meinem letzten Seite der pdf-Datei. das Projekt ist die Ausführung mit keine Fehler, aber für einige Grund es ist nicht eingefügt werden in die pdf-Datei.

package pdfviewer;

import java.io.*;
import java.util.*;
import java.util.List;
import java.io.IOException;

import org.apache.pdfbox.PDFReader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;





public class Main {

    /**
     * @param args the command line arguments
     */

         public static List flist()
       {
        List listfile = new ArrayList();
        String path = "C:/1";
        String files;
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();

        for (int i = 0; i < listOfFiles.length; i++)
        {
            if (listOfFiles[i].isFile())
            {
                files = listOfFiles[i].getName();
                if (files.endsWith(".pdf") || files.endsWith(".PDF"))
                {
                   listfile.add(listOfFiles[i]);


                }
            }
        }
        System.out.println(listfile);
        return listfile;

    }

public static void CheckPages(List a)
    {
        String dir = null;

        Object[] arraydir = a.toArray(new Object[0]);

        for (int i=0; i< arraydir.length; i++)
        {
            int pages = 0;
            PDFont font = PDType1Font.HELVETICA_BOLD;
            float fontSize = 12.0f;
            dir = arraydir[i].toString();
            System.out.println(dir);

            try {

                    PDDocument pdoc = PDDocument.load(dir);
                    List allPages = pdoc.getDocumentCatalog().getAllPages();

                    pages = pdoc.getNumberOfPages();
                    System.out.println(allPages);
                    int f = pages;
                    System.out.println(pages);

                    PDPage page = (PDPage) allPages.get(i);
                    //System.out.println(page);
                    PDRectangle pageSize = page.findMediaBox();
                    float stringWidth = font.getStringWidth( "AAA" );
                    float centeredPosition = (pageSize.getWidth() - (stringWidth*fontSize)/1000f)/2f;

                    PDPageContentStream contentStream = new PDPageContentStream(pdoc,page,true,true);
                    //System.out.println(contentStream);

                    contentStream.beginText();
                    contentStream.setFont( font, fontSize );
                    contentStream.moveTextPositionByAmount( centeredPosition, 30 );
                    contentStream.drawString( "AAA" );
                    contentStream.endText();
                    contentStream.close();


                    pdoc.close();

                  }
            catch (Exception e)
                    {
                        System.err.println("An exception occured in parsing the PDF Document."+ e.getMessage());
                    }
        }

}
    public static void main(String[] args)
    {
        List l = new ArrayList();
        l = pdfviewer.Main.flist();
        pdfviewer.Main.CheckPages(l);


    }

}

Vielen Dank für Ihre Aufmerksamkeit


Den code, den ich war mit oben ist korrekt.
Das problem ist, dass die PDF-Dateien generiert werden, sind in der version 1.2, das ist der Grund, warum ich nicht Editieren darf das pdf-Dokument.

Weiß jemand, was ich tun sollte, wenn ich mich mit einer version 1.2, da kann ich nicht wirklich ein upgrade.

Wieder ein bisschen. Nicht der Drucker Klammer am Ende jeder printjob?
Seine nicht notwendig, nur um seine Grundnahrungsmittel zu starten, ein anderer Prozess. Ich muss einen text einfügen Zeile ans Ende der Datei.

InformationsquelleAutor CRL88 | 2011-08-31

Schreibe einen Kommentar