互联网服务办公自动化import

关于itext 生成PDF出现的问题

此问题已解决,正确代码见2楼,后续会对功能加强,到时候再更新2楼的代码在此非常感谢网友liyihz2008的帮助和支持,非常热心的人。 需求:根据d:datasheet.pdf 的PDF模板文件生成一个PDF文档,并且填充PDF模板中的          txtCompany字段。生成的文...显示全部
此问题已解决,正确代码见2楼,后续会对功能加强,到时候再更新2楼的代码
在此非常感谢网友liyihz2008的帮助和支持,非常热心的人。

需求:根据d:datasheet.pdf 的PDF模板文件生成一个PDF文档,并且填充PDF模板中的

         txtCompany字段。生成的文档保存在 D:a.pdf

问题:生成出来的PDF为空且为损坏的文档,而且当模板为比较大的时候,就溢出了



Java Agent.java
import lotus.domino.*;
public class JavaAgent extends AgentBase {    public void NotesMain() {      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
      lotus.domino.Database db=agentContext.getCurrentDatabase();
      lotus.domino.View view = db.getView("vwMySepHistory");
      Document  doc=view.getFirstDocument();  
      System.out.println(doc.getItemValueString("TXTMANAGEDEPARTMENT"));
          new testA().createPdf("D:test1.pdf",doc);
      } catch(Exception e) {
          e.printStackTrace();
       }
   }
    
}    
}

testA.java

 import java.io.ByteArrayOutputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import com.itextpdf.text.DocumentException;
 import com.itextpdf.text.Font;
 import com.itextpdf.text.pdf.AcroFields;
 import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.PdfReader;
 import com.itextpdf.text.pdf.PdfStamper;
 import lotus.domino.*;
 
 public class testA {
         public void createPdf(String outputfilename,lotus.domino.Document doc) throws IOException, DocumentException {
                 try {
            String fileName = "d:datasheet.pdf"; 
            PdfReader reader = new PdfReader(fileName);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            PdfStamper ps = new PdfStamper(reader, bos);
            BaseFont bf = BaseFont.createFont( "STSong-L3ight",   "UniGB-UCS2-H",   BaseFont.NOT_EMBEDDED);
                Font font= new Font(bf,12,Font.NORMAL);
            AcroFields s = ps.getAcroFields();
            System.out.println("s: " + s);
            System.out.println("AcroFields: " + s.getFields());
            System.out.println("AcroFields.class: " + s.getFields().getClass());
            System.out.println("getSignatureNames: " + s.getSignatureNames());
            System.out.println("getSignatureNames: " + s.getTotalRevisions());
            System.out.println("s: " + s.getBlankSignatureNames());
            System.out.println("s: " + s.getFieldCache());
            System.out.println("s: " + s.getSubstitutionFonts());
            s.setField("txtCompany", "201001");
            ps.setFormFlattening(true);
            FileOutputStream fos = new FileOutputStream(outputfilename);
            fos.write(bos.toByteArray());
            
            ps.close();
            fos.close();
            
                 } catch (DocumentException e) {                
                        }
         }
 }
         
收起
参与23

查看其它 20 个回答wuqifeng的回答

wuqifengwuqifeng软件开发工程师软件开发

此问题是正在做domino中的tif转换pdf文档,编译的时候提示import com.itextpdf.text.不存在,求各位高手们帮助

政府机关 · 2016-04-13
浏览1859

回答者

wuqifeng
软件开发工程师软件开发

回答状态

  • 发布时间:2016-04-13
  • 关注会员:2 人
  • 回答浏览:1859
  • X社区推广