So zeichnen Sie mit der iText-Bibliothek 5.5.2 einen Rand für ganze PDF-Seiten

Wie im Titel erwähnt, wie man mit der iText-Bibliothek einen Rand mit der Farbe "ROT" (Strichbreite 5) für alle generierten PDF-Seiten zeichnet. Ich habe einige Codes ausprobiert, aber kein Ergebnis erhalten.

(1)

                    PdfPTable table = new PdfPTable(1);
                    table.setWidthPercentage(99);
                    table.setLockedWidth(true);

                    PdfPCell cell = new PdfPCell();
                    cell.setFixedHeight(PageSize.A4.getHeight());


                    document.add(table);

(2)

                    PdfContentByte content = PdfWriter.getInstance(document, fout).getDirectContent();
                    Rectangle pageRect = document.getPageSize();

                    pageRect.setLeft(pageRect.getLeft() + 10);
                    pageRect.setRight(pageRect.getRight() - 10);
                    pageRect.setTop(pageRect.getTop() - 10);
                    pageRect.setBottom(pageRect.getBottom() +10);

                    content.setColorStroke( BaseColor.BLUE);
                    content.rectangle(pageRect.getLeft(), pageRect.getBottom(), pageRect.getWidth(), pageRect.getHeight());
                    content.setLineWidth(10);
                    content.stroke();
                    content.fillStroke();

Diese Methoden geben mir kein Ergebnis, danke!

Bearbeite

Ich habe meine Methoden geändert, auch dank Bruno Lowagie für seine Antwort. Das Beispiel hat wie ein Zauber funktioniert, aber ich konnte es nicht in meinen Code einfügen.

Hier ist mein Code: Auf Knopfdruck wird eine PDF-Datei unter der angegebenen Adresse erstellt. Ich werde später weitere Inhalte hinzufügen, aber jetzt bleiben wir beim Generieren von PDF-Dateien.

   SaveToSD = (Button)findViewById(R.id.SaveToMemoryCard_xml);
    SaveToSD.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View sssdd)
        {
            String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ConcreteProject";
            File dir = new File(path);
            if (!dir.exists())
                dir.mkdirs();
            Log.d("PDFCreator", "PDF Path: " + path);

            // Incremental Process of Creating File(s).
            String pdfName = "SDG_Created_pdf.pdf";
            int num = 0;
            File file = new File(dir, pdfName);
            while (file.exists()) {
                num++;
                pdfName = "SDG_Created_pdf" + num + ".pdf";
                file = new File(dir, pdfName);
            }


            try {

                new ConAccept_Result().createPdf(pdfName);


            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }//End Of onClick(View sssdd).
    });

Und hier sind Methoden- / Klassendefinitionen:

public class RedBorder extends PdfPageEventHelper {
    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        PdfContentByte canvas = writer.getDirectContent();
        Rectangle rect = document.getPageSize();
        rect.setBorder(Rectangle.BOX); // left, right, top, bottom border
        rect.setBorderWidth(5); // a width of 5 user units
        rect.setBorderColor(BaseColor.RED); // a red border
        rect.setUseVariableBorders(true); // the full width will be visible
        canvas.rectangle(rect);
    }
}

public void createPdf(String stringfile) throws IOException, DocumentException {
    // step 1
    com.itextpdf.text.Document document = new com.itextpdf.text.Document();

    // step 2
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(stringfile));
    RedBorder event = new RedBorder();
    writer.setPageEvent(event);
    // step 3
    document.open();
    // step 4

    Chunk chunk = new Chunk("Lovin' iText - Lovin' iText");
    chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE, 0.3f, BaseColor.CYAN);
    document.add(chunk);

    // step 5
    document.close();
}

Nachdem die App ausgeführt wurde, wurde ein Ordner mit dem Namen erstellt, aber es ist keine PDF-Datei vorhanden!

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage