itext使用pdf模板错误地格式化段落数据

mjqavswn  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(197)

我创建了一个pdf模板,将传递的字符串数据字段格式化为包含itext代码的java函数(如下所示)。传递的字符串之一(示例中为f13)将用于模板中包含的段落中。我认为因为模板中有一个文本字段,所以段落没有正确 Package 。请参见带有突出显示的句子的示例以获取结果>>>
使用模板和字符串创建的pdf文档,段落应为:

该段应改为如下:“结果如下所示,这表明文本已写入文件,但看起来一团糟。块不知道当长度超过文档中可用的宽度时如何强制换行。实际上,它们应该用来更改或设置单词或短语的内联样式。”

public class ABC_PDF_CreateAndFill4 {

public static final String SRC = 
  "C:\\Users\\XXX\\Documents\\iTextPDF\\Template\\PDFtest_062320_v3.pdf";
  public static final String DEST = // 
 "C:\\Users\\XXXX\\Documents\\iTextPDF\\PDFtest_11.pdf";
 .
 .
 .
// manipulatePDF called from external routine passing parms.   

public void manipulatePdf(String S1, String D1, String F1, String F2, 
String F3, String F4, String F5, String F6, String F7, String F8, String 
F9, String F10, String F11, String F12, String F13, String F14, String 
F15, String F16, String F17, String F18, String F19, String F20, String 
F21  ) 
               throws IOException, DocumentException {
               PdfStamper stamper;
               int i = 0;

               PdfReader reader = new PdfReader(S1);           
               AcroFields form = reader.getAcroFields();       
               AcroFields fields = reader.getAcroFields();

               stamper = new PdfStamper(reader, new FileOutputStream(D1));

               fill(stamper.getAcroFields(), F1, F2, F3, F4, F5, F6, F7, 
      F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, F21 );

               stamper.setFormFlattening(true);
               stamper.close();
       }

        public static void fill( AcroFields form, String F1, String F2, 
        String F3, String F4, String F5, String F6, String F7, String F8, 
        String F9, String F10, String F11, String F12, String F13, String 
        F14, String F15, String F16, String F17, String F18, String F19, 
        String F20, String F21  )
             throws IOException, DocumentException {         

             form.setField("F02_RO_Address_Line1", F1); // 1
             form.setField("F03_RO_Address_Line2", F2); // 2
             form.setField("F22_Addressee", F3); // 3
             form.setField("F23_Adress_Line1", F4); // 4
             form.setField("F24_Address_Line2", F5); // 5
             form.setField("F25_Address_Line3", F6); // 6
             form.setField("F26_Address_Line4", F7); // 7
             form.setField("F01_Notice_Date", F8); // 8
             form.setField("F04_Company_Name_Line1", F9); // 9
             form.setField("F05_Company_Name_Line2", F10); // 10
             form.setField("F08_RO_Postal_Address_Line1", F11); // 11
             form.setField("F09_RO_Postal_Address_Line2", F12); // 12
             form.setField("RTField", F13);  // Text field paragraph
             form.setField("F111_Emc2_Indicator", F14); // 14
             form.setField("F238_Enclosure", F15); // 15
             form.setField("Enclosure", F16); // 16
             form.setField("F11_Agents_Name_Copy", F17); // 17
             form.setField("F12_Agent_Phone", F18); // 18
             form.setField("F06_Requester_ID", F19); // 19;
             form.setField("ShortForm", F20); // 20;
             form.setField("Display_Agent_Code", F21); // 21;

这篇文章接近我可能需要做的。如何用itext格式化pdf模板中的文本

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题