Python:如何替换pdf中的文本

Python:如何替换pdf中的文本,python,pdf,reportlab,pypdf,Python,Pdf,Reportlab,Pypdf,我有一个pdf文件,我想替换pdf文件中的一些文本并生成新的pdf。在python中如何实现这一点? 我试过reportlab,reportlab没有任何搜索文本和替换文本的功能。我还可以使用什么模块?了解从PDF中读取文本的多种方法之一。然后你需要创建一个新的pdf,据我所知,他们不会为你检索任何格式。可以输出不太难解析的文本(它似乎相当随机地分割文本行)。我不想学太多Perl,所以我编写了这些非常基本的Perl命令行脚本,一个将单页pdf读入文本文件Perl read.pl pdfIn.pd

我有一个pdf文件,我想替换pdf文件中的一些文本并生成新的pdf。在python中如何实现这一点? 我试过reportlab,reportlab没有任何搜索文本和替换文本的功能。我还可以使用什么模块?

了解从PDF中读取文本的多种方法之一。然后你需要创建一个新的pdf,据我所知,他们不会为你检索任何格式。

可以输出不太难解析的文本(它似乎相当随机地分割文本行)。我不想学太多Perl,所以我编写了这些非常基本的Perl命令行脚本,一个将单页pdf读入文本文件
Perl read.pl pdfIn.pdf textOut.txt
,另一个将文本(您可以同时修改)写入pdf
Perl write.pl pdfIn.pdf textIn.txt pdfOut.pdf

#!/usr/bin/perl
use Module::Load;
load "CAM::PDF";

$pdfIn = $ARGV[0];
$textOut = $ARGV[1];

$pdf = CAM::PDF->new($pdfIn);
$page = $pdf->getPageContent(1);

open(my $fh, '>', $textOut);
print $fh $page;
close $fh;

exit;

#/usr/bin/perl
使用模块::加载;
加载“CAM::PDF”;
$pdfIn=$ARGV[0];
$textIn=$ARGV[1];
$pdfOut=$ARGV[2];
$pdf=CAM::pdf->new($pdfIn);
我的$page;
打开(my$fh),你可以试试,Aspose.PDF Cloud是一个REST API PDF处理解决方案。它是付费API,其免费套餐计划每月提供50个学分

我是Aspose的开发者宣传员

import os
import asposepdfcloud
from asposepdfcloud.apis.pdf_api import PdfApi

# Get App key and App SID from https://cloud.aspose.com
pdf_api_client = asposepdfcloud.api_client.ApiClient(
    app_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    app_sid='xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx')

pdf_api = PdfApi(pdf_api_client)
filename = '02_pages.pdf'
remote_name = '02_pages.pdf'
copied_file= '02_pages_new.pdf'
#upload PDF file to storage
pdf_api.upload_file(remote_name,filename)

#upload PDF file to storage
pdf_api.copy_file(remote_name,copied_file)

#Replace Text
text_replace = asposepdfcloud.models.TextReplace(old_value='origami',new_value='polygami',regex='true')
text_replace_list = asposepdfcloud.models.TextReplaceListRequest(text_replaces=[text_replace])

response = pdf_api.post_document_text_replace(copied_file, text_replace_list)
print(response)

请解释一下您的triedHi@Dax!欢迎来到Stack Overflow。正如@adao7000所提到的-您能给我们一个您尝试过的例子吗?请查看关于创建“最小、封闭、可验证”的指南这里的示例:。我是upvoter。请注意前面的评论:@Dax不是要求代码,而是要求python模块。请注意,这清楚地表明,“但是如果您的问题通常涉及……一个软件开发特有的实际的、可回答的问题……那么您提出问题的位置是正确的!”我来这里也是为了寻找同样的东西。如果有人给我们指出正确的方向,那就足够了。你链接到的页面还包含以下内容:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决此问题所做的工作。”。“这里有一些更有用的文档,如果我仔细研究,我可能会编写某种Python包装器
import os
import asposepdfcloud
from asposepdfcloud.apis.pdf_api import PdfApi

# Get App key and App SID from https://cloud.aspose.com
pdf_api_client = asposepdfcloud.api_client.ApiClient(
    app_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    app_sid='xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx')

pdf_api = PdfApi(pdf_api_client)
filename = '02_pages.pdf'
remote_name = '02_pages.pdf'
copied_file= '02_pages_new.pdf'
#upload PDF file to storage
pdf_api.upload_file(remote_name,filename)

#upload PDF file to storage
pdf_api.copy_file(remote_name,copied_file)

#Replace Text
text_replace = asposepdfcloud.models.TextReplace(old_value='origami',new_value='polygami',regex='true')
text_replace_list = asposepdfcloud.models.TextReplaceListRequest(text_replaces=[text_replace])

response = pdf_api.post_document_text_replace(copied_file, text_replace_list)
print(response)