Desagrupar de un documento PDF mediante la API de servicio web
Creado para:
- Developer
Desmonte un documento del PDF utilizando la API del servicio Assembler (servicio Web):
-
Incluir archivos de proyecto.
Cree un proyecto de Microsoft .NET que utilice MTOM. Asegúrese de utilizar la siguiente definición WSDL al configurar una referencia de servicio:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.NOTEReemplazarlocalhost
con la dirección IP del servidor que hospeda AEM Forms. -
Cree un cliente de ensamblador de PDF.
-
Cree un
AssemblerServiceClient
usando su constructor predeterminado. -
Cree un
AssemblerServiceClient.Endpoint.Address
usando la variableSystem.ServiceModel.EndpointAddress
constructor. Pase un valor de cadena que especifique el WSDL al servicio de AEM Forms (por ejemplo,http://localhost:8080/soap/services/AssemblerService?blob=mtom
). No es necesario que use la variablelc_version
atributo. Este atributo se utiliza al crear una referencia de servicio. -
Cree un
System.ServiceModel.BasicHttpBinding
obteniendo el valor deAssemblerServiceClient.Endpoint.Binding
campo . Conversión del valor devuelto aBasicHttpBinding
. -
Configure las variables
System.ServiceModel.BasicHttpBinding
del objetoMessageEncoding
campo aWSMessageEncoding.Mtom
. Este valor garantiza que se utilice MTOM. -
Habilite la autenticación HTTP básica realizando las siguientes tareas:
- Asignar el nombre de usuario de los formularios AEM al campo
AssemblerServiceClient.ClientCredentials.UserName.UserName
. - Asignar el valor de contraseña correspondiente al campo
AssemblerServiceClient.ClientCredentials.UserName.Password
. - Asignar el valor constante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Asignar el valor constante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Asignar el nombre de usuario de los formularios AEM al campo
-
-
Haga referencia a un documento DDX existente.
- Cree un
BLOB
usando su constructor. La variableBLOB
se utiliza para almacenar el documento DDX. - Cree un
System.IO.FileStream
invocando su constructor. Pase un valor de cadena que represente la ubicación del archivo del documento DDX y el modo en que se abre el archivo. - Cree una matriz de bytes que almacene el contenido del
System.IO.FileStream
objeto. Puede determinar el tamaño de la matriz de bytes obteniendo la variableSystem.IO.FileStream
del objetoLength
propiedad. - Rellene la matriz de bytes con los datos de flujo invocando la variable
System.IO.FileStream
del objetoRead
y pasando la matriz de bytes, la posición inicial y la longitud de flujo para leer. - Rellene el
BLOB
asignando suMTOM
con el contenido de la matriz de bytes.
- Cree un
-
Haga referencia a un documento del PDF para desmontarlo.
- Cree un
BLOB
usando su constructor. La variableBLOB
se utiliza para almacenar el documento del PDF de entrada. EstaBLOB
se pasa alinvokeOneDocument
como argumento. - Cree un
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que representa la ubicación del archivo del documento del PDF de entrada y el modo en que se abre el archivo. - Cree una matriz de bytes que almacene el contenido del
System.IO.FileStream
objeto. Puede determinar el tamaño de la matriz de bytes obteniendo la variableSystem.IO.FileStream
del objetoLength
propiedad. - Rellene la matriz de bytes con los datos de flujo invocando la variable
System.IO.FileStream
del objetoRead
y pasando la matriz de bytes, la posición inicial y la longitud de flujo para leer. - Rellene el
BLOB
asignando suMTOM
campo el contenido de la matriz de bytes. - Cree un
MyMapOf_xsd_string_To_xsd_anyType
objeto. Este objeto de colección se utiliza para almacenar el PDF que se va a desmontar. - Cree un
MyMapOf_xsd_string_To_xsd_anyType_Item
objeto. - Asigne un valor de cadena que represente el nombre de clave a la variable
MyMapOf_xsd_string_To_xsd_anyType_Item
del objetokey
campo . Este valor debe coincidir con el valor del elemento de origen del PDF especificado en el documento DDX. - Asigne la variable
BLOB
objeto que almacena el documento del PDF en elMyMapOf_xsd_string_To_xsd_anyType_Item
del objetovalue
campo . - Agregue la variable
MyMapOf_xsd_string_To_xsd_anyType_Item
alMyMapOf_xsd_string_To_xsd_anyType
objeto. Invocar elMyMapOf_xsd_string_To_xsd_anyType
object’Add
y pase elMyMapOf_xsd_string_To_xsd_anyType
objeto.
- Cree un
-
Establezca las opciones de tiempo de ejecución.
- Cree un
AssemblerOptionSpec
que almacena opciones en tiempo de ejecución mediante su constructor. - Configure las opciones en tiempo de ejecución para satisfacer los requisitos empresariales asignando un valor a un miembro de datos que pertenezca al grupo
AssemblerOptionSpec
objeto. Por ejemplo, para solicitar al servicio Assembler que continúe procesando un trabajo cuando se produzca un error, asignefalse
aAssemblerOptionSpec
del objetofailOnError
campo .
- Cree un
-
Desmonte el documento del PDF.
Invocar el
AssemblerServiceClient
del objetoinvokeDDX
y pase los siguientes valores:- A
BLOB
objeto que representa el documento DDX que desmonta el documento PDF - La variable
MyMapOf_xsd_string_To_xsd_anyType
objeto que contiene el documento del PDF que se va a desmontar - Un
AssemblerOptionSpec
objeto que especifica opciones en tiempo de ejecución
La variable
invokeDDX
devuelve un valorAssemblerResult
objeto que contiene los resultados del trabajo y cualquier excepción que se haya producido. - A
-
Guarde los documentos de PDF desmontados.
Para obtener los documentos de PDF recién creados, realice las siguientes acciones:
- Acceda a la
AssemblerResult
del objetodocuments
, que es unMap
que contiene los documentos de PDF desmontados. - Iterar a través de la variable
Map
para obtener cada documento resultante. A continuación, cree elvalue
aBLOB
. - Extraiga los datos binarios que representan el documento del PDF accediendo a su
BLOB
del objetoMTOM
propiedad. Esto devuelve una matriz de bytes que puede escribir en un archivo PDF.
- Acceda a la