将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. 包括项目文件。

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

  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引用中的ToPSOptionsSpec类引用。
  5. 将PDF文档转换为PostScript文件。

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

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

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

  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身份验证:

      • 将AEM表单用户名分配给字段ConvertPdfServiceClient.ClientCredentials.UserName.UserName
      • 为字段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方法并传递以下值:

    • 表示要转换为PostScript文件的PDF文档的BLOB对象
    • 指定运行时选项的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 Forms API引用中的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. 包括项目文件。

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

  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身份验证:

      • 将AEM表单用户名分配给字段ConvertPdfServiceClient.ClientCredentials.UserName.UserName
      • 为字段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

在此页面上