Author Topic: Inserting PPD'S using Itext  (Read 3021 times)

ronankivr

  • Guest
Inserting PPD'S using Itext
« on: December 23, 2016, 03:10:48 PM »
Hello,

I am trying to implement a process for inserting page piece information externally using a java process. I know we have some adobe API's which can insert the PPD's into PDF's based(IBM suggested). I am wondering whether anyone tried and succeeded in inserting PPD's using Itext java API?

Please note that metadata values are not present inside the PDF. My requirement is to take metadata values from the file name and insert into PDF as per ondemand PPD indexing specifications.

Thank You for your help!!

ronankivr

  • Guest
Re: Inserting PPD'S using Itext
« Reply #1 on: February 07, 2017, 09:54:10 AM »
Yes. It is possible to insert PPD's using itext :-)

Alessandro Perucchi

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
    • View Profile
Re: Inserting PPD'S using Itext
« Reply #2 on: February 08, 2017, 04:22:29 AM »
Yes. It is possible to insert PPD's using itext :-)

Maybe to give a sample code on how to do it, would be also nice :-D since we don't know how to it!!
Alessandro Perucchi

#Install #Migrations #Conversion #Educate #Repair #Upgrade #Migrate #Enhance #Optimize #AIX #Linux #Multiplatforms #DB2 #Windows #Oracle #TSM #Tivoli #Performance #Audits #Customizing #Availability #HA #DR #JavaApi #ContentNavigator #ICN #WEBi #ODWEK #Services #PDF #AFP #XML

ronankivr

  • Guest
Re: Inserting PPD'S using Itext
« Reply #3 on: February 08, 2017, 01:02:45 PM »
Here is the code I am using to insert PPD's at page level. This is written in Java. We are passing name and value pairs(Metadata) to addPieceInfo method . This is just a sample. We may need to customize/optimize as per our requirements. I am using itext 5.5.9.jar file.The "appName" is mandatory others variables depends on metadata you wants to tag to the document.

Main class:

               PdfName appName = new PdfName("IBM-ODIndexes");
      PdfName dataName1 = new PdfName("Cname");
      PdfName dataName2 = new PdfName("BankNumber");
      PdfName dataName3 = new PdfName("AcctNumber");
      PdfName dataName4 = new PdfName("StmtDate");

DocumentPieceInfo dpi = new DocumentPieceInfo();
      try {
         PdfReader reader = new PdfReader("sample.pdf");
         
         int pages = reader.getNumberOfPages();
         for (int p = 1; p <= pages; p++) {
            System.out.println("Page "+p +" Inserted");
            dpi.addPieceInfo(reader, appName, dataName1,dataName2,dataName3,dataName4, new PdfString("Bud1"),new PdfString("0002"),new PdfString("123678"),new PdfString("20120507"),p);
            }
         
         FileOutputStream os=new FileOutputStream("Result-sample1.pdf",true);
         
          
      PdfStamper stamper = new PdfStamper(reader, os);
      
           stamper.close();
           PdfReader reader1 = new PdfReader("Result-sample1.pdf");
         


Method:
 
void addPieceInfo(PdfReader reader, PdfName app, PdfName name1,PdfName name2,PdfName name3,PdfName name4, PdfObject value1,PdfObject value2,PdfObject value3,PdfObject value4, int p)
    {
               
        PdfDictionary catalog1 = reader.getPageN(p);
        PdfDictionary pieceInfo = catalog1.getAsDict(PIECE_INFO);
        if (pieceInfo == null)
        {
            pieceInfo = new PdfDictionary();
            catalog1.put(PIECE_INFO, pieceInfo);
        }

        PdfDictionary appData = pieceInfo.getAsDict(app);
        if (appData == null)
        {
            appData = new PdfDictionary();
            pieceInfo.put(app, appData);
        }
        appData.put(LAST_MODIFIED, new PdfDate());
        PdfDictionary privateData = appData.getAsDict(PRIVATE);
        if (privateData == null)
        {
            privateData = new PdfDictionary();
            appData.put(PRIVATE, privateData);
        }

       
        privateData.put(name1, value1);
        privateData.put(name2, value2);
        privateData.put(name3, value3);
        privateData.put(name4, value4);
    }

Alessandro Perucchi

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1002
    • View Profile
Re: Inserting PPD'S using Itext
« Reply #4 on: February 14, 2017, 06:16:59 AM »
thank you for sharing :-)
Alessandro Perucchi

#Install #Migrations #Conversion #Educate #Repair #Upgrade #Migrate #Enhance #Optimize #AIX #Linux #Multiplatforms #DB2 #Windows #Oracle #TSM #Tivoli #Performance #Audits #Customizing #Availability #HA #DR #JavaApi #ContentNavigator #ICN #WEBi #ODWEK #Services #PDF #AFP #XML