将PDF转换为Postscript和图像文件

关于转换PDF服务

“转换PDF”服务将PDF文档转换为PostScript和多种图像格式(JPEG、JPEG 2000、PNG和TIFF)。 将PDF文档转换为PostScript对于在任何PostScript打印机上基于服务器的无人值守打印都很有用。 在不支持PDF文档的内容管理系统中存档文档时,将PDF文档转换为多页TIFF文件非常实用。

您可以使用“转换PDF”服务完成以下任务:

  • 将PDF文档转换为PostScript。

  • 将PDF文档转换为图像格式。

    注意

    有关转换PDF服务的详细信息,请参阅AEM Forms的服务参考

将PDF文档转换为PostScript

本主题介绍如何使用转换PDF服务API(Java和Web服务)以编程方式将PDF文档转换为PostScript文件。 转换为PostScript文件的PDF文档必须是非交互式PDF文档。 即,如果尝试将交互式PDF文档转换为PostScript文件,则会引发异常。

注意

有关转换PDF服务的详细信息,请参阅AEM Forms的服务参考

步骤的摘要

要将PDF文档转换为PostScript文件,请执行以下步骤:

  1. 包括项目文件。
  2. 创建转换PDF服务客户端。
  3. 引用PDF文档转换为PostScript文件。
  4. 设置转换运行时选项。
  5. 将PDF文档转换为PostScript文件。
  6. 保存PostScript文件。

包括项目文件

将必要的文件包含在您的开发项目中。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。

创建转换PDF客户端

在以编程方式执行“转换PDF”服务操作之前,必须创建“转换PDF”服务客户端。 如果您使用Java API,请创建ConvertPdfServiceClient对象。 如果您使用Web服务API,请创建ConvertPDFServiceService对象。

本节使用在AEM Forms引入的Web服务功能。 要访问新功能,必须使用lc_version属性构建代理对象。 (请参阅使用Web服务调用AEM Forms语中的“使用Web服务访问新功能”。)

引用PDF文档转换为PostScript文件

引用要转换为PostScript文件的PDF文档。 如本主题前面所述,PDF文档必须是非交互式PDF文档。 如果尝试将交互式PDF文档转换为PostScript文件,将引发异常。

设置转换运行时选项

将PDF文档转换为PostScript文件时,可以定义指定所创建PostScript类型的运行时选项。 例如,可以定义级别3 PostScript文件。

通常,生成的PostScript文件将反映输入PDF文档的大小。 如果选择ShrinkToFit选项(该选项会缩小PostScript文件的输出以适合页面),您将看不到输入的PDF文档与生成的PostScript文件之间的区别。 ShrinkToFit选项仅在选择以比输入PDF文档小的页面大小进行打印时生效。 要选择较小的页面大小,请定义PageSize选项。 此外,建议将RotateAndCenter选项设置为true以获得正确的PostScript输出。

同样,如果选择ExpandToFit选项(该选项扩展了PostScript文件的输出以适合页面),则只有在选择以比输入PDF文档更大的页面大小打印时,才会生效。 要选择较大的页面大小,请定义PageSize选项。 此外,建议将RotateAndCenter选项设置为true以获得正确的PostScript输出。

注意

有关可以设置的运行时值的信息,请参见AEM FormsAPI参考中的ToPSOptionsSpec类引用。

将PDF文档转换为PostScript文件

创建服务客户端并设置运行时选项后,可以调用PostScript转换操作。 此操作需要有关要转换的文档的信息,包括目标文档的首选PostScript级别。

保存PostScript文件

将PDF文档转换为PostScript后,可将输出另存为PostScript文件。

另请参阅

使用Java API将PDF文档转换为PS

使用Web服务API将PDF文档转换为PS

包括AEM FormsJava库文件

设置连接属性

转换PDF服务API快速开始

使用Java API将PDF文档转换为PS

使用“转换PDF服务API(Java)”将PDF文档转换为PostScript:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-convertpdf-client.jar。

  2. 创建转换PDF客户端。

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用ConvertPdfServiceClient对象的构造函数并传递ServiceClientFactory对象,创建对象。
  3. 引用PDF文档转换为PostScript文件。

    • 使用java.io.FileInputStream对象的构造函数创建一个对象,并传递一个字符串值,它指定要转换的PDF文档的位置。
    • 使用com.adobe.idp.Document构造函数创建存储PDF文档的com.adobe.idp.Document对象。 传递包含PDF文档的java.io.FileInputStream对象。
  4. 设置转换运行时选项。

    • 通过调用其构造函数创建ToPSOptionsSpec对象。
    • 通过调用属于ToPSOptionsSpec对象的适当方法来设置运行时选项。 例如,要定义所创建的PostScript级别,请调用ToPSOptionsSpec对象的setPsLevel方法并传递指定PostScript级别的PSLevel明细列表值。 有关可设置的所有运行时值的信息,请参见AEM FormsAPI参考中的ToPSOptionsSpec类引用。
  5. 将PDF文档转换为PostScript文件。

    调用ConvertPdfServiceClient对象的toPS2方法并传递以下值:

    • 一个com.adobe.idp.Document对象,它表示要转换为PostScript文件的PDF文档。
    • 一个ToPSOptionsSpec对象,它指定PostScript运行时选项。

    toPS2方法返回一个Document对象,该对象包含新的PostScript文档。

  6. 保存PostScript文件。

    • 创建java.io.File对象,并确保文件扩展名为。ps。
    • 调用Document对象的copyToFile方法,将Document对象的内容复制到文件(确保使用toPS2方法返回的Document对象)。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API将PDF文档转换为PostScript

包括AEM FormsJava库文件

设置连接属性

使用Web服务API将PDF文档转换为PS

使用转换PDF服务API(Web服务)将PDF文档转换为PostScript:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1

    注意

    localhost替换为承载AEM Forms的服务器的IP地址。

  2. 创建转换PDF客户端。

    • 使用其默认构造函数创建ConvertPdfServiceClient对象。

    • 使用System.ServiceModel.EndpointAddress构造函数创建ConvertPdfServiceClient.Endpoint.Address对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/ConvertPDFService?blob=mtom)。 您无需使用lc_version属性。 但是,请指定?blob=mtom

    • 通过获取ConvertPdfServiceClient.Endpoint.Binding字段的值创建System.ServiceModel.BasicHttpBinding对象。 将返回值转换为BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding对象的MessageEncoding字段设置为WSMessageEncoding.Mtom。 此值确保使用MTOM。

    • 通过执行以下任务启用基本HTTP身份验证:

      • 为字段ConvertPdfServiceClient.ClientCredentials.UserName.UserName指定AEM表单用户名。
      • 为字段ConvertPdfServiceClient.ClientCredentials.UserName.Password分配相应的口令值。
      • 将常量值HttpClientCredentialType.Basic指定到字段BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 将常量值BasicHttpSecurityMode.TransportCredentialOnly指定到字段BasicHttpBindingSecurity.Security.Mode
  3. 引用PDF文档转换为PostScript文件。

    • 使用BLOB对象的构造函数创建对象。 BLOB对象用于存储转换为PostScript文件的PDF文档。
    • 通过调用System.IO.FileStream对象的构造函数并传递一个字符串值,该字符串值表示要转换的PDF文档的文件位置,以及在中打开文件的模式。
    • 创建存储System.IO.FileStream对象内容的字节数组。 通过获取System.IO.FileStream对象的Length属性,可以确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法并将字节数组、开始位置和流长度传递给读取,用流数据填充字节数组。
    • 通过为MTOM字段指定字节数组的内容,填充BLOB对象。
  4. 设置转换运行时选项。

    • 通过调用其构造函数创建ToPSOptionsSpec对象。
    • 通过为ToPSOptionsSpec对象的数据成员指定值来设置运行时选项。 例如,要定义所创建的PostScript级别,请为ToPSOptionsSpec对象的psLevel明细列表成员分配一个PSLevel数据值。
  5. 将PDF文档转换为PostScript文件。

    调用GeneratePDFServiceService对象的toPS2方法并传递以下值:

    • 一个BLOB对象,它表示要转换为PostScript文件的PDF文档
    • 指定运行时选项的ToPSOptionsSpec对象

    转换完成后,通过访问PostScript文档的BLOB对象的MTOM属性提取表示该数据的二进制数据。 这会返回一个字节数组,您可以将其写出到PostScript文件。

  6. 保存PostScript文件。

    • 通过调用其构造函数创建System.IO.FileStream对象。 传递一个字符串值,它表示PS文件的文件位置。
    • 创建一个字节数组,用于存储encryptPDFUsingPassword方法返回的BLOB对象的数据内容。 通过获取BLOB对象的MTOM字段的值,填充字节数组。
    • 通过调用System.IO.BinaryWriter对象的构造函数并传递System.IO.FileStream对象,创建对象。
    • 通过调用System.IO.BinaryWriter对象的Write方法并传递字节数组,将字节数组的内容写入PostScript文件。

另请参阅

步骤摘要

使用MTOM调用AEM Forms

使用SwaRef调用AEM Forms

将PDF文档转换为图像格式

您可以使用“转换PDF”服务以编程方式将PDF文档转换为图像格式,包括JPEG、JPEG 2000、TIFF和PNG。 通过将PDF文档转换为图像文件,您可以将PDF文档用作图像文件。 例如,可以将图像放置在企业内容管理系统中进行存储。

将PDF文档转换为图像时,“转换PDF”服务会为文档中的每页创建单独的图像。 即,如果文档有20页,则“转换PDF”服务将创建20个图像文件。 将PDF文档转换为图像格式时,您可以为PDF文档中的每页创建单独的图像,或为整个PDF文档创建单个图像文件。

注意

有关转换PDF服务的详细信息,请参阅AEM Forms的服务参考

步骤的摘要

要将PDF文档转换为任何支持的类型,请执行以下步骤:

  1. 包括项目文件。
  2. 创建转换PDF服务客户端。
  3. 检索要转换的PDF文档。
  4. 设置运行时选项。
  5. 将PDF转换为图像。
  6. 从集合检索图像文件。

包括项目文件

将必要的文件包含在您的开发项目中。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。

创建转换PDF客户端

在以编程方式执行“转换PDF”服务操作之前,必须创建“转换PDF”服务客户端。 如果您使用Java API,请创建ConvertPdfServiceClient对象。 如果您使用Web服务API,请创建ConvertPDFServiceService对象。

检索要转换的PDF文档

您必须检索PDF文档才能转换为图像。 无法将交互式PDF文档转换为图像。 如果尝试这样做,则会引发异常。 要将交互式PDF文档转换为图像文件,您必须在转换PDF文档之前拼合它。 (请参阅拼合PDF文档。)

设置运行时选项

必须设置运行时选项,如图像格式和分辨率值。 有关运行时值的信息,请参见AEM FormsAPI参考中的ToImageOptionsSpec类引用。

将PDF转换为图像

在创建服务客户端并设置运行时选项后,可以将PDF文档转换为图像。 将返回包含图像的集合对象。

从集合检索图像文件

您可以从转换PDF服务返回的集合对象中检索图像文件。 集合中的每个元素都是一个com.adobe.idp.Document实例(如果您使用Web服务,则为一个BLOB实例),可以将其另存为图像文件,如JPG文件。

图像文件的格式取决于ImageConvertFormat运行时选项。 即,如果将ImageConvertFormat运行时选项设置为ImageConvertFormat.JPEG,则可以将图像文件另存为JPG文件。

另请参阅

包括AEM FormsJava库文件

设置连接属性

转换PDF服务API快速开始

使用Java API将PDF文档转换为图像文件

使用“转换PDF服务API(Java)”将PDF文档转换为图像格式:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-convertpdf-client.jar。

  2. 创建转换PDF客户端。

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用ConvertPdfServiceClient对象的构造函数并传递ServiceClientFactory对象,创建对象。
  3. 检索要转换的PDF文档。

    • 创建一个java.io.FileInputStream对象,它使用其构造函数并传递一个指定PDF文档位置的字符串值来表示要转换的PDF文档。
    • 使用com.adobe.idp.Document对象的构造函数并传递java.io.FileInputStream对象,创建对象。
  4. 设置运行时选项。

    • 使用ToImageOptionsSpec对象的构造函数创建对象。
    • 根据需要调用属于此对象的方法。 例如,通过调用setImageConvertFormat方法并传递指定格式类型的ImageConvertFormat枚举值来设置图像类型。
    注意

    必须设置ImageConvertFormat明细列表值。

  5. 将PDF转换为图像。

    调用ConvertPdfServiceClient对象的toImage2方法并传递以下值:

    • 表示要转换的PDF文件的com.adobe.idp.Document对象。
    • 一个com.adobe.livecycle.converpdfservice.client.ToImageOptionsSpec对象,它包含有关目标图像格式的各种首选项。

    toImage2方法返回包含图像的java.util.List对象。 集合中的每个元素都是一个com.adobe.idp.Document实例。

  6. 从集合检索图像文件。

    java.util.List对象进行迭代以确定是否存在图像。 每个元素都是一个com.adobe.idp.Document实例。 通过调用com.adobe.idp.Document对象的copyToFile方法并传递java.io.File对象来保存图像。

另请参阅

快速开始(SOAP模式):使用Java API将PDF文档转换为JPEG文件

使用Web服务API将PDF文档转换为图像文件

使用“转换PDF服务API(Web服务)”将PDF文档转换为图像格式:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1

    注意

    localhost替换为承载AEM Forms的服务器的IP地址。

  2. 创建转换PDF客户端。

    • 使用其默认构造函数创建ConvertPdfServiceClient对象。

    • 使用System.ServiceModel.EndpointAddress构造函数创建ConvertPdfServiceClient.Endpoint.Address对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/ConvertPDFService?blob=mtom)。 您无需使用lc_version属性。 但是,请指定?blob=mtom

    • 通过获取ConvertPdfServiceClient.Endpoint.Binding字段的值创建System.ServiceModel.BasicHttpBinding对象。 将返回值转换为BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding对象的MessageEncoding字段设置为WSMessageEncoding.Mtom。 此值确保使用MTOM。

    • 通过执行以下任务启用基本HTTP身份验证:

      • 为字段ConvertPdfServiceClient.ClientCredentials.UserName.UserName指定AEM表单用户名。
      • 为字段ConvertPdfServiceClient.ClientCredentials.UserName.Password分配相应的口令值。
      • 将常量值HttpClientCredentialType.Basic指定到字段BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 将常量值BasicHttpSecurityMode.TransportCredentialOnly指定到字段BasicHttpBindingSecurity.Security.Mode
  3. 检索要转换的PDF文档。

    • 使用BLOB对象的构造函数创建对象。 此BLOB对象用于存储PDF表单。
    • 通过调用其构造函数创建System.IO.FileStream对象。 传递一个字符串值,它指定PDF表单的位置以及在中打开文件的模式。
    • 创建存储System.IO.FileStream对象内容的字节数组。 通过获取System.IO.FileStream对象的Length属性,确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法,用流数据填充字节数组。 传递要读取的字节数组、开始位置和流长度。
    • 通过为MTOM字段指定字节数组的内容,填充BLOB对象。
  4. 设置运行时选项。

    • 使用ToImageOptionsSpec对象的构造函数创建对象。
    • 根据需要调用属于此对象的方法。 例如,通过调用setImageConvertFormat方法并传递指定格式类型的ImageConvertFormat明细列表值来设置图像类型。
    注意

    必须设置ImageConvertFormat明细列表值。

  5. 将PDF转换为图像。

    调用ConvertPDFServiceService对象的toImage2方法并传递以下值:

    • 表示要转换的文件的BLOB对象
    • ToImageOptionsSpec对象,其中包含有关目标图像格式的各种首选项

    toImage2方法返回一个MyArrayOfBLOB对象,该对象包含新创建的图像文件。

  6. 从集合检索图像文件。

    • 通过获取Count字段的值,确定MyArrayOfBLOB对象中元素的数量。 每个元素都是包含图像的BLOB对象。
    • 遍历MyArrayOfBLOB对象并保存每个图像文件。

另请参阅

使用MTOM调用AEM Forms

使用SwaRef调用AEM Forms

在此页面上