将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 Forms API参考中的ToPSOptionsSpec类引用。

将PDF文档转换为PostScript文件

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

保存PostScript文件

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

另请参阅

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

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

包括AEM Forms Java库文件

设置连接属性

转换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 Forms API Reference中的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 Forms Java库文件

设置连接属性

使用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方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。
    • BLOB对象的MTOM字段指定为字节数组的内容,从而填充该对象。
  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.FileStream对象,创建System.IO.BinaryWriter对象。
    • 通过调用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 Forms API Reference中的ToImageOptionsSpec类引用。

将PDF转换为图像

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

从集合检索图像文件

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

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

另请参阅

包括AEM Forms Java库文件

设置连接属性

转换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方法,用流数据填充字节数组。 传递要读取的字节数组、起始位置和流长度。
    • BLOB对象的MTOM字段指定为字节数组的内容,从而填充该对象。
  4. 设置运行时选项。

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

    必须设置ImageConvertFormat明细列表值。

  5. 将PDF转换为图像。

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

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

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

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

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

另请参阅

使用MTOM调用AEM Forms

使用SwaRef调用AEM Forms

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now