如何使用 Java 将 PDF 转换为 Word - 免费 PDF 转换器 API

在本文中,您将学习如何使用 ComPDFKit 的 PDF 转Word API在 Java 应用程序中将 PDF 转换为 Word 。使用我们的 API,您每月最多可以免费转换1000 个 PDF 文件。您需要做的就是创建一个免费帐户来访问您的 API 密钥。      

 

ComPDFKit API

文档转换只是我们 30 多种PDF API 工具之一 。您可以将我们的转换工具与其他工具结合使用,以创建复杂的文档处理工作流程。您将能够 将各种文件格式转换 为 PDF,以及:

         - 合并、拆分、插入、提取和删除特定的 PDF 页面

         - OCR、水印或压缩 PDF

         - 比较文档(包括内容比较和叠加比较)

 

请求工作流程

ComPDFKit API 的处理流程非常简单,由四个基本请求指令组成:创建任务、上传文件、执行任务、下载结果文件。通过这四个请求,您可以选择相应的 PDF 工具来处理您的文件,并获取结果文件的下载链接。

ComPDFKit API 请求工作流程

 

如何将 PDF 转换为 Word 

ComPDFKit 支持通过简单的 API 请求将 PDF 准确地转换为 Word,保留文本、页面布局、列、格式、图形等。它还支持识别和提取 PDF 文件中的突出显示、下划线、波浪线和删除线,并在将其转换为 Word 后保留这些注释功能。此外,即使您的 PDF 包含超链接,它也能够在转换后保持链接正常工作。

访问 PDF 到 Word API 工具并处理 PDF 转换的步骤如下: 

 

步骤 1 — 在 ComPDFKit 上创建免费帐户

访问我们的 网站,您将看到下面的页面,提示您创建免费帐户。

注册 ComPDFKit API

 

创建帐户后,您将看到以下页面,其中显示了您的计划详细信息概述。

ComPDFKit API 的仪表板

 

正如您在仪表板上看到的,您每月可以处理 1000 份文档,并且您将能够访问我们所有的 PDF API 工具。

 

第 2 步 - 获取用于身份验证的 API 密钥

验证电子邮件后,您可以从仪表板获取 API 密钥。在左侧菜单中,单击 API 密钥。您将看到以下页面,这是密钥的概述:

替代文本:获取用于身份验证的 API 密钥

 

现在您需要  将从控制台获取的publicKey 和 secretKey认证返回值 中的 public_key 和 secret_key替换 为 accessToken 。

<span style="background-color:#272e3b"><span style="color:white"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code>import java.io.*;
import okhttp3.*;
public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    MediaType mediaType = MediaType.parse("text/plain");
    RequestBody body = RequestBody.create(mediaType, "{\n    \"publicKey\": \"{{public_key}}\",\n    \"secretKey\": \"{{secret_key}}\"\n}");
    Request request = new Request.Builder()
      .url("https://api-server.compdf.com/server/v1/oauth/token")
      .method("POST", body)
      .build();
    Response response = client.newCall(request).execute();
  }
}
</code></span></span>

 

第 3 步 - 创建任务

需要替换  上一步获取到的 accessToken ,以及 需要显示错误信息的 语言类型,替换完成后会 在响应数据中获取到taskId 。

<span style="background-color:#272e3b"><span style="color:white"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code>import java.io.*;
import okhttp3.*;
public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    MediaType mediaType = MediaType.parse("text/plain");
    RequestBody body = RequestBody.create(mediaType, "");
    Request request = new Request.Builder()
      .url("https://api-server.compdf.com/server/v1/task/pdf/docx?language={{language}}")
      .method("GET", body)
      .addHeader("Authorization", "Bearer {{accessToken}}")
      .build();
    Response response = client.newCall(request).execute();
  }
}
</code></span></span>

 

第 4 步 - 上传文件

替换成你需要转换的文件,  上一步获取到的taskId , 你想要显示错误信息的  语言类型,以及 第一步获取到的accessToken 。

<span style="background-color:#272e3b"><span style="color:white"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code>import java.io.*;
import okhttp3.*;
public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    MediaType mediaType = MediaType.parse("text/plain");
    RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
      .addFormDataPart("file","{{file}}",
 RequestBody.create(MediaType.parse("application/octet-stream"),
                                          new File("")))
      .addFormDataPart("taskId","{{taskId}}")
      .addFormDataPart("language","{{language}}")
      .addFormDataPart("password","")
      .addFormDataPart("parameter","{  \"isFlowLayout\": \"1\",  \"isContainImg\": \"1\"}")
      .build();
    Request request = new Request.Builder()
      .url("https://api-server.compdf.com/server/v1/file/upload")
      .method("POST", body)
      .addHeader("Authorization", "Bearer {{accessToken}}")
      .build();
    Response response = client.newCall(request).execute();
  }
}</code></span></span>

 

第 5 步 - 处理文件

替换掉  你从Create任务中获取到的 taskId ,以及 第一步获取到的 accessToken ,替换掉 你想要显示错误信息的语言类型。

<span style="background-color:#272e3b"><span style="color:white"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code>import java.io.*;
import okhttp3.*;
public class main {
 public static void main(String []args) throws IOException{
   OkHttpClient client = new OkHttpClient().newBuilder()
     .build();
   MediaType mediaType = MediaType.parse("text/plain");
   RequestBody body = RequestBody.create(mediaType, "");
   Request request = new Request.Builder()
     .url("https://api-server.compdf.com/server/v1/execute/start?taskId={{taskId}}&language={{language}}")
     .method("GET", body)
     .addHeader("Authorization", "Bearer {{accessToken}}")
     .build();
   Response response = client.newCall(request).execute();
 }
}</code></span></span>

 

第 6 步 - 获取任务信息

将 taskId替换 为您从“创建任务”步骤中获得的 taskId, 将access_token 替换为  您在第一步中获得的access_token 。

<span style="background-color:#272e3b"><span style="color:white"><div style="text-align:start"><div><div><div><div><div><div><span style="color:var(--gpts-primary-text-color)"><span style="color:rgba(0, 0, 0, 0.88)"><span style="color:var(--gpts-black-text-color1)">解释</span></span></span></div></div><div></div><div></div></div></div></div></div></div><code>import java.io.*;
import okhttp3.*;
public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    MediaType mediaType = MediaType.parse("text/plain");
    RequestBody body = RequestBody.create(mediaType, "");
    Request request = new Request.Builder()
      .url("https://api-server.compdf.com/server/v1/task/taskInfo?taskId={{taskId}}")
      .method("GET", body)
      .addHeader("Authorization", "Bearer {{accessToken}}")
      .build();
    Response response = client.newCall(request).execute();
  }
}
</code></span></span>

 

结论

在本文中,您学习了如何使用我们的 Java PDF 转 Word API 轻松无缝地将 PDF 文件转换为适用于您的应用程序的 Word 文件。


您可以将所有这些 PDF 功能集成到您的应用程序或系统中。使用相同的 API 令牌,您还可以执行其他操作,例如拆分或合并 PDF、添加水印、使用 OCR 和 AI 表格识别等。要开始免费试用,请 在此处注册 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Apache POI 来实现将 Word 文件转换PDF 格式的文件。Apache POI 是一个 Java 库,可以用来处理 Microsoft Office 文件,并且可以使用它来将 Word 文件转换PDF 格式。 ### 回答2: 要使用Java将以Word形式存储的HTML文件转换PDF,可以使用一些开源的Java库来实现。 首先,需要将HTML文件加载到Java程序中。可以使用Apache POI库来读取Word文档,并将其转换为HTML格式。Apache POI提供了一组API来处理各种文档格式,包括Word文档(.doc和.docx)。 接下来,需要将HTML文件转换PDF格式。可以使用开源的PDFBox库来实现这个功能。PDFBox是一个功能强大的Java库,可以创建和操作PDF文件。 首先,将HTML文件加载到Java程序中。可以使用POI的HTML Parser模块来读取HTML内容。使用POI的XWPFWordExtractor类从Word文档中提取出文本。然后,使用这些文本创建一个PDF文件。 以下是一个简单的示例代码,演示了如何使用POI和PDFBox库将以Word形式存储的HTML文件转换PDF: ```java import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.converter.WordToHtmlConverter; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.text.PDFTextStripper; import java.io.*; public class HTMLtoPDFConverter { public static void main(String[] args) { String inputFile = "input.doc"; String outputFile = "output.pdf"; // 转换Word文档为HTML String htmlContent = convertWordToHTML(inputFile); // 将HTML转换PDF convertHTMLToPDF(htmlContent, outputFile); System.out.println("转换完成!"); } private static String convertWordToHTML(String inputFile) { StringBuilder htmlContent = new StringBuilder(); try { FileInputStream fis = new FileInputStream(inputFile); HWPFDocument wordDoc = new HWPFDocument(fis); WordToHtmlConverter htmlConverter = new WordToHtmlConverter( org.apache.poi.hwpf.HWPFDocumentMapper.getInstance() ); htmlConverter.processDocument(wordDoc); htmlContent.append(htmlConverter.getDocument().getInnerHTML()); fis.close(); } catch (Exception e) { e.printStackTrace(); } return htmlContent.toString(); } private static void convertHTMLToPDF(String htmlContent, String outputFile) { try { // 创建PDF文档对象 PDDocument document = new PDDocument(); // 创建PDF页面 PDPage page = new PDPage(); document.addPage(page); // 创建PDF内容流 PDPageContentStream contentStream = new PDPageContentStream(document, page); // 创建HTML文本剥离器 PDFTextStripper stripper = new PDFTextStripper(); // 设置HTML内容 stripper.setHTMLText(htmlContent); // 提取HTML内容并绘制到PDF页面 stripper.writeText(contentStream); // 关闭内容流 contentStream.close(); // 保存PDF文件 document.save(outputFile); // 关闭PDF文档 document.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码示例了如何使用Apache POI的HWPF和XWPF模块来读取Word文档,并将其转换为HTML。然后,使用PDFBox库将HTML内容转换PDF。 ### 回答3: 要使用Java将以Word形式存储的HTML转换PDF,可以遵循以下步骤: 1. 解析HTML文件:可以使用HTML解析库,如Jsoup,从HTML文件中提取内容和样式。 2. 创建PDF文档:使用JavaPDF库,如iText或Apache PDFBox,创建一个新的PDF文档对象。 3. 根据HTML内容,生成PDF内容:将HTML文件中的元素和样式映射到PDF文档中的对应元素和样式。 4. 添加样式和格式:根据HTML文件中的CSS样式规则,将样式应用到相应的PDF元素上。 5. 添加图片和链接:解析HTML文件中的图片和超链接标签,将其添加到PDF文档对应的位置。 6. 保存PDF文档:将生成的PDF文档保存到指定的文件路径。 以下是一个基本的Java代码示例,演示了如何使用iText库将以Word形式存储的HTML转换PDF: ```java import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.FileOutputStream; import java.io.IOException; public class WordToPdfConverter { public static void main(String[] args) { try { // 解析HTML文件 org.jsoup.nodes.Document htmlDoc = Jsoup.parse(new File("input.html"), "UTF-8"); // 创建PDF文档 Document pdfDoc = new Document(PageSize.A4); // 创建PDF写入器 PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf")); // 打开PDF文档 pdfDoc.open(); // 遍历HTML文件中的所有段落元素 Elements paragraphs = htmlDoc.select("p"); for (Element paragraph : paragraphs) { // 创建PDF段落,并添加到PDF文档中 pdfDoc.add(new Paragraph(paragraph.text())); } // 关闭PDF文档 pdfDoc.close(); System.out.println("HTML转换PDF成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述示例代码仅演示了基本的转换过程,实际应用中可能需要更复杂的处理逻辑和样式调整。同时,还可根据具体需求使用其他PDF库或添加更多的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值