Java API를 사용하여 제출된 XML 데이터로 PDF 문서 생성

Forms, 출력 및 Document Management API(Java)를 사용하여 제출된 XML 데이터로 PDF 문서를 생성합니다.

  1. 프로젝트 파일 포함

    Java 프로젝트의 클래스 경로에 adobe-forms-client.jar, adobe-output-client.jar 및 adobe-contentservices-client.jar과 같은 클라이언트 JAR 파일을 포함합니다.

  2. Forms, 출력 및 문서 관리 개체 만들기

    • 연결 속성을 포함하는 ServiceClientFactory 개체를 만듭니다.
    • 생성자를 사용하고 ServiceClientFactory 개체를 전달하여 FormsServiceClient 개체를 만듭니다.
    • 생성자를 사용하고 ServiceClientFactory 개체를 전달하여 OutputClient 개체를 만듭니다.
    • 생성자를 사용하고 ServiceClientFactory 개체를 전달하여 DocumentManagementServiceClientImpl 개체를 만듭니다.
  3. Forms 서비스를 사용하여 양식 데이터 검색

    • FormsServiceClient 개체의 processFormSubmission 메서드를 호출하고 다음 값을 전달하십시오.

      • 양식 데이터를 포함하는 com.adobe.idp.Document 개체입니다.
      • 모든 관련 HTTP 헤더를 포함하여 환경 변수를 지정하는 문자열 값입니다. CONTENT_TYPE 환경 변수에 대해 하나 이상의 값을 지정하여 처리할 콘텐츠 형식을 지정하십시오. 예를 들어 XML 데이터를 처리하려면 이 매개 변수에 대해 CONTENT_TYPE=text/xml 문자열 값을 지정하십시오.
      • HTTP_USER_AGENT 헤더 값을 지정하는 문자열 값(예: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)).
      • 런타임 옵션을 저장하는 RenderOptionsSpec 개체입니다.

      processFormSubmission 메서드가 양식 제출 결과를 포함하는 FormsResult 개체를 반환합니다.

    • FormsResult 개체의 getAction 메서드를 호출하여 Forms 서비스가 양식 데이터 처리를 완료했는지 여부를 확인합니다. 이 메서드가 값 0을(를) 반환하면 데이터를 처리할 준비가 되었습니다.

    • FormsResult 개체의 getOutputContent 메서드를 호출하여 com.adobe.idp.Document 개체를 만들어 양식 데이터를 검색합니다. (이 개체에는 출력 서비스로 전송할 수 있는 양식 데이터가 포함되어 있습니다.)

    • java.io.DataInputStream 생성자를 호출하고 com.adobe.idp.Document 개체를 전달하여 java.io.InputStream 개체를 만듭니다.

    • 정적 org.w3c.dom.DocumentBuilderFactory 개체의 newInstance 메서드를 호출하여 org.w3c.dom.DocumentBuilderFactory 개체를 만듭니다.

    • org.w3c.dom.DocumentBuilderFactory 개체의 newDocumentBuilder 메서드를 호출하여 org.w3c.dom.DocumentBuilder 개체를 만듭니다.

    • org.w3c.dom.DocumentBuilder 개체의 parse 메서드를 호출하고 java.io.InputStream 개체를 전달하여 org.w3c.dom.Document 개체를 만듭니다.

    • XML 문서 내에서 각 노드의 값을 검색합니다. 이 작업을 수행하는 한 가지 방법은 두 개의 매개 변수(org.w3c.dom.Document 개체 및 값을 검색할 노드의 이름)를 허용하는 사용자 지정 메서드를 만드는 것입니다. 이 메서드는 노드의 값을 나타내는 문자열 값을 반환합니다. 이 프로세스를 따르는 코드 예제에서는 이 사용자 지정 메서드를 getNodeText이라고 합니다. 이 메서드의 본문이 표시됩니다.

  4. 출력 서비스를 사용하여 비대화형 PDF 문서를 만듭니다.

    OutputClient 개체의 generatePDFOutput 메서드를 호출하고 다음 값을 전달하여 PDF 문서를 만듭니다.

    • TransformationFormat 열거형 값입니다. PDF 문서를 생성하려면 TransformationFormat.PDF을(를) 지정하십시오.
    • 양식 디자인의 이름을 지정하는 문자열 값입니다. 양식 디자인이 Forms 서비스에서 검색한 양식 데이터와 호환되는지 확인합니다.
    • 양식 디자인이 있는 콘텐츠 루트를 지정하는 문자열 값입니다.
    • PDF 런타임 옵션이 포함된 PDFOutputOptionsSpec 개체입니다.
    • 렌더링 런타임 옵션이 포함된 RenderOptionsSpec 개체입니다.
    • 양식 디자인과 병합할 데이터가 포함된 XML 데이터 원본이 포함된 com.adobe.idp.Document 개체입니다. 이 개체가 FormsResult 개체의 getOutputContent 메서드에서 반환되었는지 확인하십시오.
    • generatePDFOutput 메서드가 작업 결과를 포함하는 OutputResult 개체를 반환합니다.
    • OutputResult 개체의 getGeneratedDoc 메서드를 호출하여 비대화형 PDF 문서를 검색합니다. 이 메서드는 비대화형 PDF 문서를 나타내는 com.adobe.idp.Document 인스턴스를 반환합니다.
  5. 문서 관리 서비스를 사용하여 PDF 양식을 컨텐츠 서비스에 저장(더 이상 사용되지 않음)

    DocumentManagementServiceClientImpl 개체의 storeContent 메서드를 호출하고 다음 값을 전달하여 콘텐츠를 추가합니다.

    • 콘텐츠가 추가되는 저장소를 지정하는 문자열 값입니다. 기본 저장소는 SpacesStore입니다. 이 값은 필수 매개 변수입니다.
    • 콘텐츠가 추가되는 공간의 정규화된 경로를 지정하는 문자열 값(예: /Company Home/Test Directory). 이 값은 필수 매개 변수입니다.
    • 새 콘텐츠를 나타내는 노드 이름(예: MortgageForm.pdf)입니다. 이 값은 필수 매개 변수입니다.
    • 노드 유형을 지정하는 문자열 값입니다. PDF 파일과 같은 새 콘텐츠를 추가하려면 {https://www.alfresco.org/model/content/1.0}content을(를) 지정하십시오. 이 값은 필수 매개 변수입니다.
    • 콘텐츠를 나타내는 com.adobe.idp.Document 개체입니다. 이 값은 필수 매개 변수입니다.
    • 인코딩 값을 지정하는 문자열 값(예: UTF-8)입니다. 이 값은 필수 매개 변수입니다.
    • 버전 정보를 처리하는 방법(예: UpdateVersionType.INCREMENT_MAJOR_VERSION을 지정하여 콘텐츠 버전을 늘리는 방법)을 지정하는 UpdateVersionType 열거형 값입니다. ) 이 값은 필수 매개 변수입니다.
    • 콘텐츠와 관련된 측면을 지정하는 java.util.List 인스턴스입니다. 이 값은 선택적 매개 변수이며 null을(를) 지정할 수 있습니다.
    • 콘텐츠 특성을 저장하는 java.util.Map 개체입니다.

    storeContent 메서드는 콘텐츠를 설명하는 CRCResult 개체를 반환합니다. CRCResult 개체를 사용하면 콘텐츠의 고유 식별자 값을 얻을 수 있습니다. 이 작업을 수행하려면 CRCResult 개체의 getNodeUuid 메서드를 호출하십시오.

recommendation-more-help