Die Formularausgabe wurde in jedem System gesehen, aber in letzter Zeit ist sie papierlos geworden, sodass ich der Meinung bin, dass die Anzahl der Papierausgaben selbst abnimmt. Formähnliche Geschäftspraktiken sind jedoch weiterhin erforderlich. Lassen Sie uns einfach PDF-Daten erstellen.
pdfbox-2.0.8
Hier herunterladen. Offiziell
package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class PdfTest {
public static void main(String args[]) {
try {
//Dokumentobjekt erstellen
PDDocument document = new PDDocument();
//Seitenobjekt erstellen
PDPage page = new PDPage();
document.addPage(page);
//Speichern Sie das Dokument
document.save("test.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Sie haben jetzt eine einseitige Datei.
Als nächstes folgt die Ausgabe von Zeichen.
package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PdfTest {
public static void main(String args[]) {
try {
//Dokumentobjekt erstellen
PDDocument document = new PDDocument();
//Seitenobjekt erstellen
PDPage page = new PDPage();
document.addPage(page);
//Zeichenausgabeverarbeitung
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//Schriftartspezifikation
PDFont font = PDType1Font.TIMES_ITALIC;
contentStream.setFont(font, 12);
//Ausgabepositionsspezifikation
contentStream.newLineAtOffset(0f, 0f);
//Ausgabezeichenfolge
contentStream.showText( "HelloWorld" );
contentStream.endText();
contentStream.close();
//Speichern Sie das Dokument
document.save("test2.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Da die Ausgabeposition contentStream.newLineAtOffset (0f, 0f) ist, wird sie unten links ausgegeben. Es gibt verschiedene Arten von Ausgabe-Schriftarten.
package pdf;
import java.io.File;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
//Dokumentobjekt erstellen
PDDocument document = new PDDocument();
//Seitenobjekt erstellen
PDPage page = new PDPage();
document.addPage(page);
//Zeichenausgabeverarbeitung
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//Schriftartspezifikation
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//Ausgabepositionsspezifikation
contentStream.newLineAtOffset(0f, 755f);
//Ausgabezeichenfolge
contentStream.showText( "Hallo Welt" );
contentStream.endText();
contentStream.close();
//Speichern Sie das Dokument
document.save("test3.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Schriftdateien werden zwischen .ttf und .ttc etwas anders behandelt. Diesmal benutze ich .ttc.
Abhängig vom Geschäftsfall kann es erforderlich sein, dass Sie nur die Daten speichern möchten, ohne die eigentliche Datei zu erstellen. Dies kann problemlos erreicht werden.
package pdf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
//Dokumentobjekt erstellen
PDDocument document = new PDDocument();
//Seitenobjekt erstellen
PDPage page = new PDPage();
document.addPage(page);
//Zeichenausgabeverarbeitung
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//Schriftartspezifikation
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//Ausgabepositionsspezifikation
contentStream.newLineAtOffset(0f, 755f);
//Ausgabezeichenfolge
contentStream.showText( "Hallo Welt. Speichern Sie nur Daten." );
contentStream.endText();
contentStream.close();
//Dokumentdaten speichern
ByteArrayOutputStream out = new ByteArrayOutputStream();
document.save(out);
document.close();
InputStream streamData =new ByteArrayInputStream(out.toByteArray());
System.out.println("Bestätigung------------");
System.out.println("streamData" + streamData);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Sie können es so wie es ist in einer Spalte vom Typ Blob speichern.
package pdf;
import java.io.File;
import java.io.StringWriter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class GetPdfText {
public static void main(String args[]) {
try {
String pdfFile = "test3.pdf";
PDDocument document = PDDocument.load(new File(pdfFile));
StringWriter output = new StringWriter();
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(1);
stripper.setEndPage(1);
stripper.setSortByPosition(false);
stripper.setShouldSeparateByBeads(true);
stripper.writeText(document, output);
String content = output.toString();
System.out.println("---------Ausgangsstart-------------");
System.out.println(content);
} catch (Exception e) {
e.printStackTrace();
}
}
}
--------- Ausgabe starten -------------- Hallo Welt
Es gibt verschiedene andere Funktionen wie Bildeinbettung und Rahmen, daher werde ich die Gelegenheit nutzen, sie hinzuzufügen.
Recommended Posts