In der Ausgabe bis zum letzten Mal wurde es wie Word nur von links oben exportiert. In PDF können Sie die Ausgabeposition und die Ausgabe angeben.
FreePosString.java
import com.itextpdf.kernel.colors.ColorConstants;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.ColumnDocumentRenderer;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.borders.Border;
import com.itextpdf.layout.borders.SolidBorder;
import com.itextpdf.layout.element.Paragraph;
public class FreePosString {
public static void main(String[] args) throws Exception {
PdfDocument pdf = new PdfDocument(new PdfWriter("FreePosString.pdf"));
PageSize ps = PageSize.A4.rotate();
PdfPage page = pdf.addNewPage(ps);
PdfCanvas canvas = new PdfCanvas(page);
//Heisei Kaku Gothic
PdfFont font = PdfFontFactory.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H");
// Initialize document
Document document = new Document(pdf);
// (100, 200)Zu breit:50, height:Geben Sie 100 an
Rectangle[] columns = {
new Rectangle(100, 200, 50, 100)
};
document.setRenderer(new ColumnDocumentRenderer(document, columns));
//Roter Rahmen-Linienbreite 0.Exportieren Sie Zeichen mit 5f
Border border = new SolidBorder(ColorConstants.RED, 0.5f);
Paragraph p1 = new Paragraph("Aiue, Kakikukeko abcdefgh-ijklmn,opqrstuvwxyz")
.setFont(font)
.setFontSize(12)
.setBorder(border)
;
document.add(p1);
// (100, 200)Linie zu. Breite:50, height:Überprüfen Sie den Bereich von 100
canvas.moveTo(0, 0).lineTo(100, 200).lineTo(150, 200).lineTo(150, 300).lineTo(100, 300).stroke();
//Close document
document.close();
}
}
document.setRenderer(new ColumnDocumentRenderer(document, columns)); Geben Sie dann mehrere Rechtecke in Spalten an. Geben Sie diesmal der Einfachheit halber nur eine Position (100.200) an, Breite: 50 und Höhe: 100. Versuchen Sie außerdem, eine Linie im angegebenen Bereich mit moveTo und lineTo zu zeichnen, um die Position besser verständlich zu machen.
Ausgabebild
Anscheinend steht (0, 0) unten links im Text.
Es scheint auch, dass es von der angegebenen Position (100, 200) auf die angegebene Position der Höhe 100 geschrieben wird.
Darüber hinaus scheint Paragraph leicht aus der Position zu geraten. Es scheint, dass Sie diesen Bereich mithilfe von Tabelle besser angeben können.
Zeichen, die nicht in den angegebenen Rahmen passten, wurden auf den folgenden Seiten an derselben Position ausgegeben. Ich würde auch gerne einen Weg finden, um festzustellen, ob es nicht im Weg ist.
Außerdem habe ich die Zeichenfolge so angepasst, dass am Anfang und am Ende der Zeile ",", "-" und "," hinzugefügt werden. Es scheint jedoch, dass nur alphanumerische Zeichen mit halber Breite verboten sind. Diese Einstellung war in der vorherigen Version möglich, aber ist es in text7 möglich? Ich möchte diesen Bereich in Zukunft untersuchen.
Recommended Posts