gpt4 book ai didi

c# - 计算 html 分页符 (html 2 pdf) 服务器端,用于使用页眉和页脚进行精确的打印布局

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:35 25 4
gpt4 key购买 nike

我们打印通过 html 到 pdf 应用程序生成的 pdf 书籍。

每个页面都有一个页眉和页脚,我们根据不同语言的生产和翻译限制(和布局变化)准确放置内容,以确保每个页面的固定内容适合。

因此,例如,尽管我们的内容是动态的,但一个段落在书中的相同位置预计会占用大约相同数量的空间。我们有时会更改翻译的样式和布局属性,但适用相同大小的相同规则。

我们在每一页上都有一个页眉和页脚,整本书呈现为一个长的 html 页面,使用 css 换行将每个页眉强制到一个新页面。因此,为了反射(reflect)我们控制每个页面服务器端的固定内容高度。

这很好用,我们对 HTML 在演示方面为我们提供的优势感到非常高兴(设计师而不是程序员可以设计页面等),我们也在这项技术上投入了大量资金,我们现在太深了,无法改变方向,所以我们无法改变我们的技术,我们使用的是 html 2 pdf,我们需要尽可能地使这项工作成为可能。这并不是说我们不能混合技术。但是……

问题是,我们现在有一些可变大小的内容,我们以前无法控制,对我们来说它是文本,所以我们可以控制它的格式,但不能控制它的数量。我们也有不同大小的标题。

我们需要一种方法来计算分页符,尽可能少地留下空白,我很想知道其他人是如何处理这个问题的。我知道这不是一门精确的科学,但我仍然需要尽可能最好的方法。

我们完全控制渲染/布局引擎,它始终兼容 ie8,因此无需考虑不同的浏览器。

这些是我的想法,很想听听你的想法:

  1. 这是我们当前的方法,每页分配若干行(根据字体大小和字体变化以允许不同的语言环境)每个内容 block 将计算为 n 行成本,该数字用于计算分页符。

临简单

不准确,我们的字体都不是等宽字体,需要针对每个语言环境进行配置。

  1. 将自由流动内容的每个连续页面渲染到具有精确页面宽度的 div(固定 div)中的网页中,让它流动到它需要的任何垂直高度,使用 html 2 bmp 解决方案捕获图像并使用高度渲染的图像(检测到边缘并根据需要裁剪)以计算所需的页数。

Pro 可以是准确的,如果自由流动的内容保持连续,也不会太贵。

Con 不完整的解决方案,一旦我知道所需的页数,我怎么知道在哪里中断 html?使用这种方法测量每个页面并进行边缘检测会非常昂贵。

  1. 在逐个字体的基础上,提前了解文本和标题的字体大小、填充和边距,计算宽度和换行符以及高度,使用从字体文件中提取的宽度数据逐个字符计算。

Pro 一旦提取了所有数据,并为 HTML 呈现的差异添加了边距,这可能会相当准确。

缺点 高度复杂且对样式表更改敏感。

  1. 我们可以使用 WebBrowserControl 以某种方式测量内容吗?

乐于听取您的想法和建议。

编辑....

我们的 pdf 转换器是 Winnovative,它在 .net Windows 服务中运行,但是我们的 html 提要是用 PHP 生成的。

最佳答案

请引用说明书 http://www.winnovative-software.com/manual%5CHTML%20to%20PDF%20Converter%20for%20.NET%20-%20Developer%27s%20Manual.htm

第 5.1 点。希望此解决方案对您有所帮助。

注意:内部链接无效,因此请手动导航到所需的点。

关于c# - 计算 html 分页符 (html 2 pdf) 服务器端,用于使用页眉和页脚进行精确的打印布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9531248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com