簡體   English   中英

計算html分頁符(html 2 pdf)服務器端,以獲得具有頁眉和頁腳的精確打印布局

[英]calculate html page breaks (html 2 pdf) server side for precise print layout with headers and footers

我們打印通過html生成的pdf書籍到pdf應用程序。

每個頁面都有一個頁眉和頁腳,我們准確地使用不同語言的制作和翻譯限制(以及布局變化)來確保每個頁面的固定內容適合。

因此,例如,盡管我們的內容是動態的,但預計一個段落將為書中的相同位置獲取大約相同的空間量。 我們有時會更改翻譯的樣式和布局屬性,但適用相同大小的相同規則。

我們在每個頁面上都有一個頁眉和頁腳,並使用css換行將整本書呈現為一個長html頁面,以強制每個頁眉進入新頁面。 所以反映我們控制每頁服務器端的固定內容高度。

這很好用,我們非常滿意HTML在演示中提供的優勢(設計師而不是程序員可以設計頁面等),我們也投入大量資金用於這項技術,我們現在太過深入改變方向,所以我們無法改變我們的技術,我們正在使用html 2 pdf,我們需要盡可能做到最好。 這並不是說我們不能混合技術。 但...

問題是,我們現在有一些可變大小的內容,我們以前沒有控制權,對我們來說它是文本,所以我們可以控制它的格式,但不是它的數量。 我們也有不同大小的標題。

我們需要一種計算分頁符的方法,留下盡可能少的空白區域,我很想知道其他人是如何處理這個問題的。 我知道這不是一門精確的科學,但我仍然需要最好的方法。

我們完全控制渲染/布局引擎,它始終是ie8兼容的,因此不需要考慮不同的瀏覽器。

這些是我的想法,很想聽聽你的:

  1. 這是我們當前的方法,每頁分配一些行數(按字體大小和字體變量以允許不同的語言環境)每個內容塊將被計算為n行成本,這個數字用於計算分頁符。

親簡單

Con不准確,我們的字體都不是等寬字體,需要為每個區域設置進行配置。

  1. 將每個連續頁面的自由流動內容渲染到精確頁面寬度(固定div)的div中的網頁中,讓它流向所需的任何垂直高度,使用html 2 bmp解決方案捕獲圖像並使用渲染圖像的高度(如果需要,檢測邊緣並裁剪)以計算所需的頁數。

如果自由流動內容保持連續,Pro可能是准確的,而不是太昂貴。

Con Incomplete解決方案,一旦我知道所需的頁數,我怎么知道在哪里打破html? 使用這種方法測量每一頁並進行邊緣檢測將非常昂貴。

  1. 在逐字體的基礎上,預先知道文本和標題的字體大小,填充和邊距,使用從字體文件中提取的寬度數據逐字符計算寬度和換行符和高度。

Pro一旦提取了所有數據,並且為HTML渲染的差異添加了邊距,這可能相當准確。

Con高度復雜且對樣式表更改敏感。

  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點。 希望這個解決方案能幫到你

注意:內部鏈接不起作用,請親自手動導航到所需的點。

這個問題很古老,但我和你做的基本相同。 我發現行號計數仍然很重要,但您可以使用css樣式行高來標准化每行的大小。 (如果html是基於表格的tr的高度)。 這應該允許您每頁有一定數量的行。

你有沒有想出一個適合你的解決方案?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM