Assembler サービス Java™ API クイックスタート(SOAP) assembler-service-java-api-quickstart-soap
Assembler サービスで Java API クイックスタート(SOAP)を使用できます
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントのアセンブリ
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントの分割
クイックスタート(SOAP モード):Java API を使用した暗号化された PDF ドキュメントのアセンブリ
クイックスタート(SOAP モード):ベイツ番号を使用した PDF ドキュメントを、Java API を使用してアセンブリする
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントのアセンブリ
クイックスタート(SOAP モード):Java API を使用したドキュメントの PDF/A 準拠の確認
クイックスタート(SOAP モード):Java API を使用した DDX ドキュメントの検証
クイックスタート(SOAP モード):Java API を使用した、ブックマークを含む PDF ドキュメントのアセンブリ
クイックスタート(SOAP モード):Java API を使用した DDX ドキュメントの動的な作成
クイックスタート(SOAP モード):Java API を使用した PDF ポートフォリオのアセンブリ
クイックスタート(SOAP モード):Java API を使用した複数の XDP フラグメントのアセンブリ
AEM Forms の操作は、AEM Forms で厳密に型指定された API を使用して実行できます。接続モードは、SOAP に設定する必要があります。
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントのアセンブリ quick-start-soap-mode-assembling-a-pdf-document-using-the-java-api
次の Java コードの例では、map.pdf および directions.pdf という名前の 2 つの PDF ソースドキュメントを単一の PDF 文書に結合します。こうして作られた単一の PDF 文書の名前は AssemblerResultPDF.pdf です。DDX ドキュメントの名前は shell.xml です。(プログラムによる PDF ドキュメントの組み立てを参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="out.pdf">
* <PDF source="map.pdf" />
* <PDF source="directions.pdf" />
* </PDF>
*</DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class InvokeAssemblerSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\shell.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store PDF source documents
Map inputs = new HashMap();
FileInputStream mySourceMap = new FileInputStream("C:\\map.pdf");
FileInputStream mySourceOptions = new FileInputStream("C:\\directions.pdf");
//Create a Document object based on the map.pdf source file
Document myPDFMapSource = new Document(mySourceMap);
//Create a Document object based on the directions.pdf source file
Document myPDFOptionsSource = new Document(mySourceOptions);
//Place two entries into the Map object
inputs.put("map.pdf",myPDFMapSource);
inputs.put("directions.pdf",myPDFOptionsSource);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result PDF document
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("out.pdf"))
{
Object o = e.getValue();
outDoc = (Document)o;
//Save the result PDF file
File myOutFile = new File("C:\\AssemblerResultPDF.pdf");
outDoc.copyToFile(myOutFile);
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントの分割 quick-start-soap-mode-disassembling-a-pdf-document-using-the-java-api
次の Java コードの例では、AssemblerResultPDF.pdf という名前の PDF ドキュメントを分割します。DDX ドキュメントの名前は shell_disassemble.xml です。分割後の各 PDF 文書には、ResultPDF[Number].pdf
という名前が付けられます。例えば、分割された PDF ドキュメントのうち 1 番目のドキュメントの名前は ResultPDF1.pdf です。 このコードの例で使用されている shell_disassemble.xml DDX ドキュメントについて詳しくは、プログラムによる PDF ドキュメントの分割を参照してください。
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
*<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDFsFromBookmarks prefix="stmt">
* <PDF source="AssemblerResultPDF.pdf"/>
*</PDFsFromBookmarks>
*</DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class DisassemblePDFSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\shell_disassemble.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store PDF source documents
Map inputs = new HashMap();
FileInputStream mySourceMap = new FileInputStream("C:\\AssemblerResultPDF.pdf");
//Create a Document object based on the map.pdf source file
Document myPDFSource = new Document(mySourceMap);
//Place two entries into the Map object
inputs.put("AssemblerResultPDF.pdf",myPDFSource);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to the Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF documents from the Map object
Document outDoc = null;
int index = 0;
//Iterate through the map object to retrieve the result PDF document
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
Object o = e.getValue();
//Cast the Object to a Document
//and save to a file
outDoc = (Document)o;
File myOutFile = new File("C:\\ResultPDF"+index +".pdf");
outDoc.copyToFile(myOutFile);
index++;
}
if (index > 0)
System.out.println("The PDF document was disassembled into "+index+" PDF documents.");
else
System.out.println("The PDF document was not disassembled.");
}catch (Exception e) {
System.out.println("Error OCCURRED: "+e.getMessage());
}
}
}
クイックスタート(SOAP モード):Java API を使用した暗号化された PDF ドキュメントのアセンブリ quick-start-soap-mode-assembling-an-encrypted-pdf-document-using-the-java-api
次の Java コードの例では、パスワードで暗号化されたPDFドキュメントを構築します。保護されていない PDF ドキュメントの名前は Loan.pdf です。DDX ドキュメントの名前は shell_Encrypt.xml です。暗号化された PDF ドキュメントの名前は AssemblerEncryptedPDF.pdf です。(暗号化された PDF ドキュメントのアセンブリを参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
*<?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="EncryptLoan.pdf" encryption="userProtect">
* <PDF source="inDoc" />
* </PDF>
* <PasswordEncryptionProfile name="userProtect" compatibilityLevel="Acrobat7">
* <OpenPassword>AdobeOpen</OpenPassword>
* </PasswordEncryptionProfile>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleEncryptedDocumentSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
/*
* Create a FileInputStream object based on an existing DDX file
* This DDX document contains instructions to encrypt the PDF document
*/
FileInputStream myDDXFile = new FileInputStream("C:\\shell_Encrypt.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Reference an unsecured PDF document
FileInputStream mySourceLoan = new FileInputStream("C:\\Loan.pdf");
//Create a Document object based on the Loan.pdf source file
Document myPDFLoanSource = new Document(mySourceLoan);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
Document jobResult = assemblerClient.invokeOneDocument(myDDX,myPDFLoanSource,assemblerSpec);
//Create the output file
File myOutFile = new File("C:\\AssemblerEncryptedPDF.pdf");
jobResult.copyToFile(myOutFile);
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):ベイツ番号を使用した PDF ドキュメントを、Java API を使用してアセンブリする quick-start-soap-mode-assembling-a-pdf-document-with-bates-numbering-using-the-java-api
次の Java コードの例では、一意のページ識別子(ベイツナンバリング)を使用して PDF ドキュメントを構築しています。DDX ドキュメントの名前は shell_Bates.xml です。Assembler サービスから返された PDF ドキュメントは、AssemblerResultBatesPDF.pdf という名前の PDF ファイルとして保存されます。(ベイツナンバリングを使用したドキュメントのアセンブリを参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="out.pdf">
* <Header>
* <Center>
* <StyledText>
* <p font-size="20pt"><BatesNumber/></p>
* </StyledText>
* </Center>
* </Header>
* <PDF source="map.pdf" />
* <PDF source="directions.pdf" />
* </PDF>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleBatesNumberDocumentSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\shell_Bates.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store PDF source documents
Map<String, Object> inputs = new HashMap<String, Object>();
FileInputStream mySourceMap = new FileInputStream("C:\\Adobe\map.pdf");
FileInputStream mySourceOptions = new FileInputStream("C:\\Adobe\directions.pdf");
//Create a Document object based on the map.pdf source file
Document myPDFMapSource = new Document(mySourceMap);
//Create a Document object based on the directions.pdf source file
Document myPDFOptionsSource = new Document(mySourceOptions);
//Place two entries into the Map object
inputs.put("map.pdf",myPDFMapSource);
inputs.put("directions.pdf",myPDFOptionsSource);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Set the initial number to 100
assemblerSpec.setFirstBatesNumber(100);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result PDF document
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("out.pdf"))
{
//Cast the Object to a Document
Object o = e.getValue();
outDoc = (Document)o;
//Create the output file
File myOutFile = new File("C:\\AssemblerResultBatesPDF.pdf");
outDoc.copyToFile(myOutFile);
}
}
System.out.println("The PDF that contains Bates numbering was assembled.");
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントのアセンブリ quick-start-soap-mode-assembling-a-non-interactive-pdf-document-using-the-java-api
次の Java コードの例では、非インタラクティブ PDF ドキュメントをアセンブリします。Assembler サービスに渡されるインタラクティブ PDF ドキュメントの名前は Loan.pdf です。DDX ドキュメントの名前は shell_XFA.xml です。非インタラクティブ PDF ドキュメントは AssembleNonInteractivePDF.pdf という名前の PDF ファイルとして保存されます。(非インタラクティブ PDF ドキュメントのアセンブリを参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="out.pdf">
* <PDF source="inDoc"/>
* <NoXFA/>
* </PDF>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleNonInteractiveSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
/*
* Create a FileInputStream object based on an existing DDX file
* This DDX document contains instructions to create
* a non-interactive PDF document
*/
FileInputStream myDDXFile = new FileInputStream("C:\\shell_XFA.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Reference an interactive PDF document
FileInputStream mySourceLoan = new FileInputStream("C:\\Adobe\Loan.pdf");
//Create a Document object based on the Loan.pdf source file
Document myPDFLoanSource = new Document(mySourceLoan);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service and get back a
//non-interactive PDF document
Document outDoc = assemblerClient.invokeOneDocument(myDDX,myPDFLoanSource,assemblerSpec);
//Save the non-interactive PDF document
File myOutFile = new File("C:\\AssembleNonInteractivePDF.pdf");
outDoc.copyToFile(myOutFile);
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用したドキュメントの PDF/A 準拠の確認 quick-start-soap-mode-determining-whether-a-document-is-pdf-a-compliant-using-the-java-api
次の Java コードの例では、入力 PDF ドキュメントが PDF/A に準拠しているかどうかを判断します。Assembler サービスに渡される入力 PDF ドキュメントには、Loan.pdf という名前が付けられます。DDX ドキュメントの名前は shell_PDFA.xml です。Assembler サービスから返され、入力 PDF ドキュメントが PDF/A に準拠しているかどうかを指定する XML ドキュメントは、result.xml という名前の XML ファイルとして保存されます。このコードの例で使用されている shell_PDFA.xml DDX ドキュメントについて詳しくは、ドキュメントが PDF/A に準拠しているかどうかの検証を参照してください。
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* This quick start validates the following DDX document:
*<?xml version="1.0" encoding="UTF-8"?>
*<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <DocumentInformation source="Loan.pdf" result="Loan_result.xml">
* <PDFAValidation compliance="PDF/A-1b" resultLevel="Detailed" ignoreUnusedResources="true" allowCertificationSignatures="true" />
* </DocumentInformation>
*</DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleDeterminePDFASOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\shell_PDFA.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store PDF source documents
Map inputs = new HashMap();
FileInputStream mySourceMap = new FileInputStream("C:\\Adobe\Loan.pdf");
//Create a Document object based on the map.pdf source file
Document myPDFMapSource = new Document(mySourceMap);
//Place two entries into the Map object
inputs.put("Loan.pdf",myPDFMapSource);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result XML
//document that specifies if the input document is
//PDF/A compliant
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("Loan_result.xml"))
{
//Get the element value
Object o = e.getValue();
//Cast the Object to a Document
outDoc = (Document)o;
//Save the XML file
File myMXLFile = new File("C:\\Adobe\result.xml");
outDoc.copyToFile(myMXLFile);
}
}
System.out.println("The results are written to result.xml.");
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した DDX ドキュメントの検証 quick-start-soap-mode-validating-ddx-documents-using-the-java-api
次の Java コードの例では、bookmarkDDX.xml という名前のファイルに基づいて DDX ドキュメントを検証します。(DDX ドキュメントの検証を参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* This quick start validates the following DDX document:
*&<?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="out.pdf">
* <PDF source="map.pdf" />
* <PDF source="directions.pdf" />
* </PDF>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class ValidateDDXSOAP
{
public static void main(String[] args) {
boolean isValid = false;
Document outLog = null;
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\bookmarkDDX.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setValidateOnly(true);
assemblerSpec.setLogLevel("FINE");
assemblerSpec.setFailOnError(false);
//Validate the DDX document
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,null,assemblerSpec);
outLog = jobResult.getJobLog();
isValid = true;
}catch (Exception e) {
if (e instanceof OperationException) {
OperationException oe = (OperationException) e;
outLog = oe.getJobLog();
File myOutFile = new File("C:\\test.xml");
outLog.copyToFile(myOutFile);
}
e.printStackTrace();
} finally {
if (outLog != null) {
File myOutFile = new File("C:\\test.xml");
outLog.copyToFile(myOutFile);
}
if (isValid) {
// do something
} else {
// do something else
}
}
}
}
クイックスタート(SOAP モード):Java API を使用した、ブックマークを含む PDF ドキュメントのアセンブリ quick-start-soap-mode-assembling-pdf-documents-with-bookmarks-using-the-java-api
次の Java コードの例では、ブックマークがある PDF ドキュメントを構築します。DDX ドキュメントの名前は bookmarkDDX.xml です。PDF ドキュメントに追加するブックマークを表すブックマーク XML ドキュメントの名前は bookmarks.xml です。生成される PDF ドキュメントは、AssemblerResultBookmarks.pdf という名前の PDF ファイルとして保存されます。(ブックマークを使用した PDF ドキュメントのアセンブリを参照してください)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* * This quick start uses the following DDX document:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="FinalDoc.pdf">
* <PDF source="Loan.pdf">
* <Bookmarks source="doc2" />
* </PDF>
* </PDF>
* </DDX>
*
* This quick start also uses the following bookmarks XML
* to assemble a PDF document containing bookmarks:
* <?xml version="1.0" encoding="UTF-8"?>
* <Bookmarks xmlns="https://ns.adobe.com/pdf/bookmarks" version="1.0">
* <Bookmark>
* <Action>
* <Launch NewWindow="true">
* <File Name="C:\Adobe\LoanDetails.pdf" />
* </Launch>
* </Action>
* <Title>Open the Loan document</Title>
* </Bookmark>
* <Bookmark>
* <Action>
* <Launch>
* <Win Name="C:\WINDOWS\notepad.exe" />
* </Launch>
* </Action>
* <Title>Launch NotePad</Title>
* </Bookmark>
* </Bookmarks>
*
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleBookmarksSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\bookmarkDDX.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store an input PDF document and a Bookmark
//XML document
Map inputs = new HashMap();
FileInputStream mySourceMap = new FileInputStream("C:\\Loan.pdf");
FileInputStream bookmarkInfo = new FileInputStream("C:\\bookmarks.xml");
//Create a Document object based on the Loan.pdf source file
Document myPDFMapSource = new Document(mySourceMap);
//Create a Document object based on the bookmarks.xml file
Document myBookmarkXML= new Document(bookmarkInfo);
//Place two entries into the Map object
inputs.put("Loan.pdf",myPDFMapSource);
inputs.put("doc2",myBookmarkXML);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result PDF document
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("FinalDoc.pdf"))
{
Object o = e.getValue();
outDoc = (Document)o;
//Save the result PDF file
File myOutFile = new File("C:\\Adobe\Assembler\Output\AssemblerResultBookmarks.pdf");
outDoc.copyToFile(myOutFile);
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した DDX ドキュメントの動的な作成 quick-start-soap-mode-dynamically-creating-a-ddx-document-using-the-java-api
次の Java コードの例では、PDF ドキュメントをディスアセンブリする DDX ドキュメントを動的に作成します。新しい PDF ドキュメントは、入力 PDF ドキュメントのレベル 1 のブックマークごとに作成されます。このコードの例には、次の 2 つのユーザー定義メソッドがあります。
-
createDDX
:Assembler サービスに送信される DDX ドキュメントを表すorg.w3c.dom.Document
オブジェクトを作成します。このユーザー定義メソッドは、org.w3c.dom.Document
オブジェクトを返します。 -
convertDDX
:org.w3c.dom.Document
オブジェクトをcom.adobe.idp.Document
オブジェクトに変換します。このメソッドは、入力パラメーターとしてorg.w3c.dom.Document
オブジェクトを受け入れ、com.adobe.idp.Document
オブジェクトを返します。このクイックスタートでは、これらの両方のメソッドが呼び出されます。(DDX ドキュメントの動的な作成を参照。)
``
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document created in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="out.pdf">
* <PDF source="inDoc"/>
* <NoXFA/>
* </PDF>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Element;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssemblePDFWithDynamicDDXSOAP {
public static void main(String[] args) {
try {
//Set connection properties required to invoke AEM Forms using SOAP mode
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT,
"https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceCl ientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE,
"JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME,
"administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD,
"password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory =
ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Dynamically create a DDX document
org.w3c.dom.Document myDDX = createDDX();
//Covert the DDX document to a com.adobe.idp.Document instance
com.adobe.idp.Document ddx = convertDDX(myDDX);
//Create a Map object to store PDF source documents
Map inputs = new HashMap();
FileInputStream mySourceMap = new FileInputStream("C:\\AssemblerResultPDF.pdf");
//Create a Document object based on the map.pdf source file
Document myPDFSource = new Document(mySourceMap);
//Place the entry into the Map object
inputs.put("AssemblerResultPDF.pdf", myPDFSource);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service and use the dynamically created DDX document
AssemblerResult jobResult = assemblerClient.invokeDDX(ddx, inputs, assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
int index = 1;
//Iterate through the map object to retrieve the result PDF documents
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry) i.next();
Object o = e.getValue();
//Cast the Object to a Document
//and save to a file
outDoc = (Document) o;
File myOutFile = new File("C:\\ResultPDF" + index + ".pdf");
outDoc.copyToFile(myOutFile);
index++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
//Creates a DDX document using an org.w3c.dom.Document object
private static org.w3c.dom.Document createDDX() {
org.w3c.dom.Document document = null;
try {
//Create DocumentBuilderFactory and DocumentBuilder objects
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//Create a Document object
document = builder.newDocument();
//Create the root element and append it to the XML DOM
Element root = (Element) document.createElement("DDX");
root.setAttribute("xmlns", "https://ns.adobe.com/DDX/1.0/");
document.appendChild(root);
//Create the PDFsFromBookmarks element
Element PDFsFromBookmarks =
(Element) document.createElement("PDFsFromBookmarks");
PDFsFromBookmarks.setAttribute("prefix", "stmt");
root.appendChild(PDFsFromBookmarks);
//Create the PDF element
Element PDF = (Element) document.createElement("PDF");
PDF.setAttribute("source", "AssemblerResultPDF.pdf");
PDFsFromBookmarks.appendChild(PDF);
} catch (Exception e) {
System.out.println("The following exception occurred: " + e.getMessage());
}
return document;
}
//Converts an org.w3c.dom.Document object to a
//com.adobe.idp.Document object
private static Document convertDDX(org.w3c.dom.Document myDOM) {
byte[] mybytes = null;
try {
//Create a Java Transformer object
TransformerFactory transFact = TransformerFactory.newInstance();
Transformer transForm = transFact.newTransformer();
//Create a Java ByteArrayOutputStream object
ByteArrayOutputStream myOutStream = new ByteArrayOutputStream();
//Create a Java Source object
javax.xml.transform.dom.DOMSource myInput = new DOMSource(myDOM);
//Create a Java Result object
javax.xml.transform.stream.StreamResult myOutput = new StreamResult(myOutStream);
//Populate the Java ByteArrayOutputStream object
transForm.transform(myInput, myOutput);
// Get the size of the ByteArrayOutputStream buffer
int myByteSize = myOutStream.size();
//Allocate myByteSize to the byte array
mybytes = new byte[myByteSize];
//Copy the content to the byte array
mybytes = myOutStream.toByteArray();
} catch (Exception e) {
System.out.println("The following exception occurred: " + e.getMessage());
}
//Create a com.adobe.idp.Document object and copy the
//contents of the byte array
Document myDocument = new Document(mybytes);
return myDocument;
}
}
クイックスタート(SOAP モード):Java API を使用した PDF ポートフォリオのアセンブリ quick-start-soap-mode-assembling-pdf-portfolios-using-the-java-api
次の Java コードの例は、PDF ポートフォリオを作成します。PDF ポートフォリオは、AssemblerResultPortfolio.pdf という名前の PDF ファイルとして保存されます。(PDF ポートフォリオのアセンブリを参照。)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* This is the DDX file used to create a PDF portfolio:
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <PDF result="portfolio1.pdf">
* <Portfolio>
* <Navigator source="myNavigator">
* <Resource name="navigator/image.xxx" source="myImage.png"/>
* </Navigator>
* </Portfolio>
* <PackageFiles source="dog1" >
* <FieldData name="X">72</FieldData>
* <FieldData name="Y">72</FieldData>
* <File filename="saint_bernard.jpg" mimetype="image/jpeg"/>
* </PackageFiles>
* <PackageFiles source="dog2" >
* <FieldData name="X">120</FieldData>
* <FieldData name="Y">216</FieldData>
* <File filename="greyhound.pdf"/>
* </PackageFiles>
* </PDF>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class CreatePDFPortfolioSOAP {
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\Adobe\portfolioAssembly.xml");
FileInputStream myNavFile = new FileInputStream("C:\\Adobe\AdobeOnImage.nav");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
Document myNav = new Document(myNavFile);
//Create a Map object to store PDF source documents
Map<String,Object> input = new HashMap<String, Object>();
FileInputStream mySourceNavImage = new FileInputStream("C:\\Adobe\myImage.png");
FileInputStream mySourceDog1 = new FileInputStream("C:\\Adobe\saint_bernard.jpg");
FileInputStream mySourceDog2 = new FileInputStream("C:\\Adobe\greyhound.pdf");
//Create a Document object based on the myImage.png source file
Document myPDFNavImageSource = new Document(mySourceNavImage);
//Create a Document object based on the MyFirstFile.pdf source file
Document myPDFDog1Source = new Document(mySourceDog1);
//Create a Document object based on the MySecondFile.txt source file
Document myPDFDog2Source = new Document(mySourceDog2);
//Place two entries into the Map object
input.put("myNavigator", myNav);
input.put("myImage.png",myPDFNavImageSource);
input.put("dog1",myPDFDog1Source);
input.put("dog2",myPDFDog2Source);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,input,assemblerSpec);
Map<String,Document> allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result PDF document
for (Iterator<Map.Entry<String,Document>> i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object?s value
Map.Entry<String,Document> e = (Map.Entry<String,Document>)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("portfolio1.pdf"))
{
Object o = e.getValue();
outDoc = (Document)o;
//Save the result PDF file
File myOutFile = new File("C:\\Adobe\AssemblerResultPortfolio.pdf");
outDoc.copyToFile(myOutFile);
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した複数の XDP フラグメントのアセンブリ quick-start-soap-mode-assembling-multiple-xdp-fragments-using-the-java-api
次の Java コードの例では、XDP ファイル tuc018_template_flowed.xdp、 tuc018_contact.xdp および* tuc018_patient.xdp* に基づく XDP フラグメントをアセンブルします。すべてのフラグメントを含むアセンブリ済みの XDP ドキュメントは、AssemblerResultXDP.xdp という名前の XDP ファイルとして保存されます。(複数の XDP フラグメントをアセンブルを参照。)
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-assembler-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if the Forms Server is not deployed
* on JBoss)
* 6. activation.jar (required for SOAP mode)
* 7. axis.jar (required for SOAP mode)
* 8. commons-codec-1.3.jar (required for SOAP mode)
* 9. commons-collections-3.1.jar (required for SOAP mode)
* 10. commons-discovery.jar (required for SOAP mode)
* 11. commons-logging.jar (required for SOAP mode)
* 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 13. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 14. jaxrpc.jar (required for SOAP mode)
* 15. log4j.jar (required for SOAP mode)
* 16. mail.jar (required for SOAP mode)
* 17. saaj.jar (required for SOAP mode)
* 18. wsdl4j.jar (required for SOAP mode)
* 19. xalan.jar (required for SOAP mode)
* 20. xbean.jar (required for SOAP mode)
* 21. xercesImpl.jar (required for SOAP mode)
*
* These JAR files are in the following path:
* <install directory>/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/jboss/bin/client
*
* SOAP required JAR files are in the following path:
* <install directory>/sdk/client-libs/thirdparty
*
* If you want to invoke a remote Forms Server instance and there is a
* firewall between the client application and the server, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include these additional JAR files
*
* For information about the SOAP
* mode, see "Setting connection properties" in Programming
* with AEM Forms
*
* The following XML represents the DDX document used in this quick start:
* <?xml version="1.0" encoding="UTF-8"?>
* <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
* <XDP result="tuc018result.xdp">
* <XDP source="tuc018_template_flowed.xdp">
* <XDPContent insertionPoint="ddx_fragment" source="tuc018_contact.xdp" fragment="subPatientContact" required="false"/>
* <XDPContent insertionPoint="ddx_fragment" source="tuc018_patient.xdp" fragment="subPatientPhysical" required="false"/>
* <XDPContent insertionPoint="ddx_fragment" source="tuc018_patient.xdp" fragment="subPatientHealth" required="false"/>
* </XDP>
* </XDP>
* </DDX>
*/
import com.adobe.livecycle.assembler.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class AssembleFragmentsSOAP
{
public static void main(String[] args) {
try{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
//Create a ServiceClientFactory instance
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create an AssemblerServiceClient object
AssemblerServiceClient assemblerClient = new AssemblerServiceClient(myFactory);
//Create a FileInputStream object based on an existing DDX file
FileInputStream myDDXFile = new FileInputStream("C:\\Adobe\fragmentDDX.xml");
//Create a Document object based on the DDX file
Document myDDX = new Document(myDDXFile);
//Create a Map object to store the input XDP files
Map inputs = new HashMap();
FileInputStream inSource = new FileInputStream("C:\\Adobe\tuc018_template_flowed.xdp");
FileInputStream inFragment1 = new FileInputStream("C:\\Adobe\tuc018_contact.xdp");
FileInputStream inFragment2 = new FileInputStream("C:\\Adobe\tuc018_patient.xdp");
//Create a Document object
Document myMapSource = new Document(inSource);
//Create a Document object
Document inFragment1Doc = new Document(inFragment1);
//Create a Document object
Document inFragment2Doc = new Document(inFragment2);
//Place all the XDP files into the MAP
inputs.put("tuc018_template_flowed.xdp",myMapSource);
inputs.put("tuc018_contact.xdp",inFragment1Doc);
inputs.put("tuc018_patient.xdp",inFragment2Doc);
//Create an AssemblerOptionsSpec object
AssemblerOptionSpec assemblerSpec = new AssemblerOptionSpec();
assemblerSpec.setFailOnError(false);
//Submit the job to Assembler service
AssemblerResult jobResult = assemblerClient.invokeDDX(myDDX,inputs,assemblerSpec);
java.util.Map allDocs = jobResult.getDocuments();
//Retrieve the result PDF document from the Map object
Document outDoc = null;
//Iterate through the map object to retrieve the result XDP document
for (Iterator i = allDocs.entrySet().iterator(); i.hasNext();) {
// Retrieve the Map object's value
Map.Entry e = (Map.Entry)i.next();
//Get the key name as specified in the
//DDX document
String keyName = (String)e.getKey();
if (keyName.equalsIgnoreCase("tuc018result.xdp"))
{
Object o = e.getValue();
outDoc = (Document)o;
//Save the result XDP file
File myOutFile = new File("C:\\AssemblerResultXDP.xdp");
outDoc.copyToFile(myOutFile);
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
クイックスタート(SOAP モード):Java API を使用した PDF ドキュメントの編集 quick-start-soap-mode-redacting-a-pdf-document-using-the-java-api
次のコードの例では、PDFUtility
を使用して PDF ドキュメントを修正します。
PDFUtility
は、Acrobat を使用して修正対象としてマークされている PDF のみを修正できます。/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-pdfutility-client.jar
* 2. adobe-livecycle-client.jar
* 3. adobe-usermanager-client.jar
* 4. adobe-utilities.jar
* 5. jboss-client.jar (use a different JAR file if AEM Forms is not deployed
* on JBoss)
*
* These JAR files are in the following path:
* <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/common
*
* The adobe-utilities.jar file is in the following path:
* <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/jboss
*
* The jboss-client.jar file is in the following path:
* <install directory>/Adobe/Adobe_Experience_Manager_forms/jboss/bin/client
*
* If you want to invoke a remote AEM Forms instance and there is a
* firewall between the client application and AEM Forms, then it is
* recommended that you use the SOAP mode. When using the SOAP mode,
* you have to include additional JAR files in the following
* path
* <install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs/thirdparty
*
* For information about the SOAP
* mode and the additional JAR files that need to be included,
* see "Setting connection properties" in Programming
* with AEM Forms
*
* For complete details about the location of the AEM Forms JAR files,
* see "Including AEM Forms library files" in Programming
* with AEM Forms
*/
import java.util.*;
import com.adobe.livecycle.pdfutility.client.*;
import java.io.*;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class RedactPDF
{
public static void main(String[] args)
{
try
{
//Set connection properties required to invoke AEM Forms
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "https://'[server]:[port]'");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
// Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
// Create a PDF Utility client
PDFUtilityServiceClient pdfUt = new PDFUtilityServiceClient(myFactory);
// Specify a PDF document to Redact
FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\\RedactMarked.pdf");
Document inDoc = new Document(fileInputStream);
RedactionOptionSpec spec = new RedactionOptionSpec();
// Convert the PDF document to redact
RedactionResult redRes = pdfUt.redact(inDoc,spec);
Document redactPDF = redRes.getDocument();
//Save the returned Document object as an XDP file
File redactedFile = new File("C:\\Adobe\\Redacted.pdf");
redactPDF.copyToFile(redactedFile);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}