Dans la sortie jusqu'à la dernière fois, il n'était exporté que depuis le coin supérieur gauche comme Word. Dans PDF, vous pouvez spécifier la position de sortie et la sortie.
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)À la largeur:50, height:Spécifiez 100
Rectangle[] columns = {
new Rectangle(100, 200, 50, 100)
};
document.setRenderer(new ColumnDocumentRenderer(document, columns));
//Cadre rouge-Largeur de ligne 0.Exporter des caractères avec 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)Ligne vers. largeur:50, height:Vérifiez la plage de 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)); Ensuite, spécifiez plusieurs rectangles dans les colonnes. Par souci de simplicité cette fois, ne spécifiez qu'une seule position (100,200), largeur: 50 et hauteur: 100. De plus, pour faciliter la compréhension de l'emplacement, essayez de dessiner une ligne dans la plage spécifiée à l'aide de moveTo ou lineTo.
Image de sortie
Apparemment (0, 0) se trouve en bas à gauche dans son texte.
En outre, il semble qu'il sera écrit de la position spécifiée (100, 200) à la position de hauteur 100 spécifiée.
De plus, Paragraph semble être légèrement déplacé. Il semble que vous puissiez mieux spécifier cette zone en utilisant Table.
Les caractères qui ne rentrent pas dans le cadre spécifié ont été affichés à la même position sur les pages suivantes. J'aimerais également trouver un moyen de déterminer si cela ne vous gêne pas.
De plus, j'ai ajusté la chaîne de caractères pour que ",", "-" et "," soient au début et à la fin de la ligne, mais il semble que seuls les caractères alphanumériques demi-largeur soient interdits. Ce paramètre était possible dans la version précédente, mais est-il possible dans ce texte7? Je voudrais étudier ce domaine à l’avenir.
Recommended Posts