Java >> Java tutorial >  >> Java

iText PDFtable eksempel

I det foregående eksempel demonstrerede vi brugen af ​​PDFStamper-klassen i IText-biblioteket. I dette eksempel vil vi demonstrere, hvordan vi kan bruge PDFTable at forbedre designet af PDF-dokumentet og tilpasse dokumentlayoutet med en tabelstruktur.










Lad os starte med at sætte projektet op. Vi laver et simpelt Maven-projekt i Eclipse. Erstat indholdet af pom.xml med nedenstående givne indhold:

1. Projektopsætning

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>PDFTableExample</groupId>
  <artifactId>PDFTableExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk15on</artifactId>
			<version>1.52</version>
		</dependency>


	</dependencies>

</project>


Dette vil indlæse den nødvendige Itext biblioteker og dets tilsvarende afhængigheder i projektet. Nu hvor projektet er sat op, lad os starte med demonstrationen og den faktiske kodeskrivning.

Her er klassen, der vil oprette en ny PdfTable i PDF-dokumentet.

CreatePDFTable.java

package com.jcg.examples;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

public class CreatePDFTable
{
		public static void main(String[] args)
		{
				Document document = new Document();
				try
				{
						@SuppressWarnings("unused")
						PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("CreateTable.pdf"));
						document.open();
						
						PdfPTable pdfPTable =new PdfPTable(2); 
						PdfPCell pdfCell1 = new PdfPCell(new Phrase("Cell-1")); 
						PdfPCell pdfCell2 = new PdfPCell(new Phrase("Cell-12")); 
						pdfPTable.addCell(pdfCell1);
						pdfPTable.addCell(pdfCell2);
						PdfPCell pdfCell3 = new PdfPCell(new Phrase("Cell-21")); 
						pdfCell3.setColspan(2);
						pdfCell3.setBackgroundColor(BaseColor.DARK_GRAY);
						pdfCell3.setBorderColor(BaseColor.RED);
						pdfCell3.setRotation(90);
						pdfPTable.addCell(pdfCell3);
						
						pdfPTable.setWidthPercentage(70);
						
						document.add(pdfPTable);
						document.close();
				}
				catch (FileNotFoundException e)
				{
						e.printStackTrace();
				}
				catch (DocumentException e)
				{
						e.printStackTrace();
				}
				document.open();
		}
}

Vi starter med at oprette en instans af com.itextpdf.text.Document . Vi videregiver denne instans til PDFWriter sammen med stien og navnet på det dokument, der skal oprettes. Dernæst opretter vi en forekomst af com.itextpdf.text.pdf.PdfPTable . Denne tabel kan have flere celler, hvor hver celle har sine egne egenskaber, som kan administreres på et elementært niveau.

Vi har brugt PdfPTable#setWidthPercentage for at indstille tabelbredden i forhold til dokumentet. Celler oprettes ved at oprette forekomster af com.itextpdf.text.pdf.PdfPCell . Vi kan indstille cellekantfarven ved hjælp af PdfPCell#setBorderColor . På samme måde kan vi indstille baggrundsfarven ved hjælp af PdfPCell#setBackgroundColor .

Bredden af ​​cellerne kan justeres ved hjælp af setWidths metode. Vi kan øge størrelsen af ​​en colspan ved hjælp af setColspan metode.

Teksten i cellen kan også roteres om nødvendigt ved at bruge setRotation metode. På samme måde kan vi indstille cellepolstring, cellejustering, celleindrykning osv.

Når celleforekomsten er klar, kan den vedhæftes til den overordnede tabel. Denne tabel tilføjes derefter til dokumentet. Når dokumentet er lukket, skylles tabellen til PDF.

Vi kan oprette en indlejret tabel ved at oprette en celle i en tabel og tilføje en ny tabel i cellen.

Her er hvordan PDFPTable ser i et dokument, når ovenstående klasse køres:

Fig. 1:PDF-tabel i et dokument

2. Download kildekoden

I dette eksempel demonstrerede vi, hvordan vi kan bruge Itext PDFPTable-klassen til at forbedre designet og præcisionen af ​​PDF-dokumentet.

Java tag