将内容从纯文本写入pdf文件

2024-09-30 14:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在link here中有示例内容。它是纯文本。如何将此文本内容转换为原始pdf文件?(这是我从MTOM服务获得的内容

我已经远离这个来源了multipart/mixed包含json和二进制内容作为文本

--uuid:dba94a0e-2d99-4675-9781-2a736995bdc8
Content-Type: application/json;charset=UTF-8
Content-Transfer-Encoding: binary
Content-ID: <jsonInfos>

{"messages":[{"id":"0","type":"INFOS","messageContent":"La requête a été traitée avec succès","replacementValues":[]}]}
--uuid:dba94a0e-2d99-4675-9781-2a736995bdc8
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <label>

%PDF-1.3
%����
12 0 obj
<<
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/Filter [/FlateDecode /DCTDecode]
/Height 80
/Length 2486
/Name /Obj0
/Subtype /Image
/Type /XObject
/Width 119
>>
stream
x���{<��ǟ1f��$1rY�{�QY  �a�Les�-jܧ��Qm��R4!wi&׉�Y�$32��h�1�f�Sg�9�:����y^�?���|���|�5�lr���`0p@:�N)�@"d�H�Bʡ7����h���6��lݪ�������a5t���j��k`h��Hg�  �K}��S
....
....
....
startxref
101943
%%EOF

--uuid:dba94a0e-2d99-4675-9781-2a736995bdc8--

我尝试了python:

with open('tmp.txt', 'r') as tmp:
     with open('sample.pdf', 'wb') as sample:
          sample.write(tmp.read().encode('utf-8'))

Tags: sample文本idjson内容pdfuuidapplication
3条回答

可以考虑使用FPDF生成PDF文件。 PFB示例代码

from fpdf import FPDF

with open('tmp.txt', 'r') as tmp:
    wpdf = FPDF()
    wpdf.set_font('arial', '', 12)
    wpdf.add_page()
    wpdf.set_xy(10, 5)
    for line in tmp:
        wpdf.cell(50, 5, txt=line, ln=1, align="L")
    wpdf.output('sample.pdf', 'F')`enter code here`


有关更多信息,请参阅下面的链接。 https://pyfpdf.readthedocs.io/en/latest/Tutorial/index.html

您无法仅从纯文本文件中恢复原始pdf文件。因为在导出到txt时,转换器会删除很多信息,如颜色编码、结构、字体数据等。但是,如果您只想从txt创建pdf,可以使用wkhtmltopdfpdfkit来实现这一点

  • 通过安装wkhtmltopdfapt-get install wkhtmltopdf

  • 通过pip install pdfkit安装pdfkit

现在您可以这样做:

import pdfkit

pdfkit.from_file("tmp.txt", "sample.pdf")

这将返回:

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Loading page (1/2)
Printing pages (2/2)                                               
Done                                                           
True

pdf文件应如下所示:

enter image description here

不能像写入普通文本文件那样写入pdf文件。python中有用于编写pdf文件的库。你可以试试pdfrw

要写入pds的数据可以具有属性(而不是保存在文本文件中的文本),请按照samples执行实际需要的操作:

from pdfrw import PdfWriter
y = PdfWriter()
y.addpage(data)
y.write('result.pdf')

相关问题 更多 >