整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

你的文本处理得力助手,TXT文本编辑器将HTML网页批量转为PDF文档

着互联网的迅猛发展,HTML网页文件已成为我们获取信息、学习知识和分享内容的主要形式之一。然而,当需要将大量的HTML网页内容整理、保存或分享时,PDF格式因其良好的可读性和兼容性而备受青睐。此时,一款能够将HTML网页文件批量转换为PDF文档的工具显得尤为重要。而“首助编辑高手”软件正是这样一款高效、便捷的工具,它能够帮助用户轻松实现HTML到PDF的批量转换,让文件处理变得更加简单和高效。

1. 选择批量转换格式:软件支持多种文件格式的批量转换,包括但不限于HTML转PDF。无论您是需要将单个文件转换,还是需要对整个文件夹中的文件进行批量处理,它都能轻松应对。

2. 支持多种转换模式:除了基本的格式转换,软件还提供了多种转换模式供用户选择。您可以根据需要选择不同的转换模式,以满足不同的输出需求。

3. 选择HTML转PDF:在软件界面中,您可以轻松选择“HTML转PDF”功能。这一功能专门针对HTML文件设计,确保转换后的PDF文件保留原HTML文件的所有内容和格式。

4. 通过添加文件导入多个HTML网页文件:支持一次性导入多个HTML网页文件,让您无需重复操作,即可实现批量转换。只需简单几步,即可轻松完成文件的导入。

5. 选择新文件保存路径:在转换过程中,您可以自由选择新文件的保存路径,方便您随时查看和管理转换后的文件。

6. 一键开始转换:完成以上步骤后,只需点击“开始转换”按钮,软件就会立即开始工作。转换过程快速而稳定,让您无需等待。

7. 查看转换效果:转换完成后,您可以立即查看转换后的PDF文件效果。软件确保转换质量高、还原度强,让您无需担心文件内容的丢失或变形。

8. 对比原文件效果:最后也可以打开原来的网页文件对比一下,均为HTML格式的,说明转换成功

软件以其强大的功能和简洁的操作界面,为用户提供了将HTML网页文件批量转为PDF文档的解决方案。无论是个人用户还是企业用户,都可以利用这款软件轻松实现网页内容的整理和分享,提高工作效率,同时也保证了文件的可读性和兼容性。选择“首助编辑高手”,让HTML转PDF变得更加简单和高效,为您的工作和学习带来极大的便利。

# txtPreview.js
# 引入jschardet获取文件编码
import jschardet from 'jschardet'

##
 # 获取文件的encoding码
 # @param {Object File} file input上传的txt文件
 # @return {String} encoding 返回文件的编码格式
 #
function checkEncoding (file) {
    return new Promise((resolve, reject) => {
        let reader = new FileReader()
        reader.readAsDataURL(file)  # 获取txt文件的base64码
        reader.onload = function (e) {
            let base64Str = reader.result
            let str = atob(base64Str.split(';base64,')[1])
            let encoding = jschardet.detect(str)  # 通过jschardet获取txt文件对应的编码格式
            encoding = encoding.encoding
            if (encoding === 'window-1252') {
                encoding = 'ANSI'
            }
            resolve(encoding)
        }
    })
}
##
 # 返回file内容
 # @param {Object File} file input上传的txt文件
 # @return {String} 返回txt文件的内容
 #
const txtPreview = (file) => {
    return new Promise((resolve, reject) => {
        checkEncoding(file).then(encoding => {
            let reader = new FileReader()
            reader.readAsText(file, encoding)  # 通过txt文件编码格式获取文件内容(字符串形式)
            reader.onloadend = function (e) {
                resolve(reader.result)
            }
        })
    })
}
export default txtPreview
<html>
<body>
    <form>
        <input type="file" id="files" name="files"/>
    </form>
    <div id="resText" style="word-wrap: break-word; white-space: divpre-wrap;"></div>
    <script>
        import txtPreview from './txtPreview.js'
        document.getElementById('files').addEventListener('change', handleFileSelect, false);
        function handleFileSelect(e) {
            let file = e.target.files[0]
            txtPreview(file).then(res => {
                document.getElementById("resText").innerHTML = res;
            })
        }
    </script>
</body>
</html>

文转载于https://lmangoxx.github.io/tags/FileReader/

要使用的是wkhtmltopdf的Python封装——pdfkit

安装

1. Install python-pdfkit:

$ pip install pdfkit

2. Install wkhtmltopdf:

  • Debian/Ubuntu:

$ sudo apt-get install wkhtmltopdf

  • Redhat/CentOS

sudo yum intsall wkhtmltopdf

  • MacOS

brew install Caskroom/cask/wkhtmltopdf

使用

一个简单的例子:

import pdfkit

pdfkit.from_url('http://google.com', 'out.pdf')

pdfkit.from_file('test.html', 'out.pdf')

pdfkit.from_string('Hello!', 'out.pdf')

你也可以传递一个url或者文件名列表:

pdfkit.from_url(['google.com', 'yandex.ru', 'engadget.com'], 'out.pdf')

pdfkit.from_file(['file1.html', 'file2.html'], 'out.pdf')

也可以传递一个打开的文件:

with open('file.html') as f:

pdfkit.from_file(f, 'out.pdf')

如果你想对生成的PDF作进一步处理, 你可以将其读取到一个变量中:

# 设置输出文件为False,将结果赋给一个变量

pdf = pdfkit.from_url('http://google.com', False)

你可以制定所有的 wkhtmltopdf 选项 http://wkhtmltopdf.org/usage/wkhtmltopdf.txt. 你可以移除选项名字前面的 '--' .如果选项没有值, 使用None, False or * 作为字典值:

options = {

'page-size': 'Letter',

'margin-top': '0.75in',

'margin-right': '0.75in',

'margin-bottom': '0.75in',

'margin-left': '0.75in',

'encoding': "UTF-8",

'no-outline': None

}

pdfkit.from_url('http://google.com', 'out.pdf', options=options)

默认情况下, PDFKit 将会显示所有的 wkhtmltopdf 输出. 如果你不想看到这些信息,你需要传递一个 quiet 选项:

options = {

'quiet': ''

}

pdfkit.from_url('google.com', 'out.pdf', options=options)

由于wkhtmltopdf的命令语法 , TOC 和 Cover 选项必须分开指定:

toc = {

'xsl-style-sheet': 'toc.xsl'

}

cover = 'cover.html'

pdfkit.from_file('file.html', options=options, toc=toc, cover=cover)

当你转换文件、或字符串的时候,你可以通过css选项指定扩展的 CSS 文件。

# 单个 CSS 文件

css = 'example.css'

pdfkit.from_file('file.html', options=options, css=css)

# Multiple CSS files

css = ['example.css', 'example2.css']

pdfkit.from_file('file.html', options=options, css=css)

你也可以通过你的HTML中的meta tags传递任意选项:

body = """

<html>

<head>

<meta name="pdfkit-page-size" content="Legal"/>

<meta name="pdfkit-orientation" content="Landscape"/>

</head>

Hello World!

</html>

"""

pdfkit.from_string(body, 'out.pdf') #with --page-size=Legal and --orientation=Landscape

配置

每个API调用都有一个可选的参数。这应该是pdfkit.configuration()API 调用的一个实例. 采用configuration 选项作为初始化参数。可用的选项有:

  • wkhtmltopdf ——wkhtmltopdf二进制文件所在的位置。默认情况下pdfkit 会尝试使用which (在类UNIX系统中) 或 where (在Windows系统中)来判断
  • meta_tag_prefix -- pdfkit的前缀指定 meta tags(元标签) - 默认情况是pdfkit-

示例 :针对wkhtmltopdf不在系统路径中(不在$PATH里面)

PATH里面):

config = pdfkit.configuration(wkhtmltopdf='/opt/bin/wkhtmltopdf'))

pdfkit.from_string(html_string, output_file, configuration=config)

问题

IOError:'No wkhtmltopdf executable found':

确保 wkhtmltopdf 在你的系统路径中(PATH), 会通过 configuration进行了配置 (详情看上文描述)。 在Windows系统中使用where wkhtmltopdf命令 或 在 linux系统中使用 which wkhtmltopdf 会返回 wkhtmltopdf二进制可执行文件所在的确切位置.

  • IOError: 'Command Failed'

如果出现这个错误意味着 PDFKit不能处理一个输入。你可以尝试直接在错误信息后面直接运行一个命令来查看是什么导致了这个错误 (某些版本的 wkhtmltopdf会因为段错误导致处理失败)

  • 正常生成,但是出现中文乱码

确保两项:

1)、你的系统中有中文字体

2)、在html中加入

下面是我随便写的一个HTML表格:

<html>

<head><meta charset="UTF-8"></head>

<body>

<table width="400" border="1">

<tr>

<th align="left">Item....</th>

<th align="right">1</th>

</tr>

<tr>

<td align="left">衣服</td>

<td align="right">1.10</td>

</tr>

<tr>

<td align="left">化妆品</td>

<td align="right">.00</td>

</tr>

<tr>

<td align="left">食物</td>

<td align="right">0.40</td>

</tr>

<tr>

<th align="left">tOTAL</th>

<th align="right">01.50</th>

</tr>

</table>

</body>

</html>

下面是生成的PDF截图