回答
不完全是,但你可以使用的打印樣式表:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
要設置字體大小,填充等,以物理單位,比如「PT」(即不應該在屏幕樣式表的使用!),以至於當它在一個典型的瀏覽器中呈現時,或多或少是一個A4頁面,通常具有隨後的風格。沒有什麼是保證的,但你可以針對常見情況進行優化。
在打印中,您不必太擔心字體大小首選項或dpi設置,但仍然無法控制瀏覽器使用的頁邊距或實際頁面大小(US Letter小於A4),所以在主要瀏覽器上留下大量的擺動空間並進行測試。
您可以使用CSS樣式的頁面,並將其設置到一定的高度/寬度...有一個很好的教程here。
號你無法控制用戶的縮放級別,打印機設置,紙張大小(是他利用在歐洲或A4紙在美國?法律)和所有的使用HTML影響打印機輸出的各種其他的事情。
你可以用HTML做的最好的事情是製作一個非常簡單的「打印友好」頁面,並保持內容簡短。或者,您可以創建一個PDF,旨在讓您控制它的打印方式。
當然。您有幾種可能性:
- 將您的頁面轉換爲大圖像。
- 將您的頁面轉換爲PDF。
- 讓您的所有用戶都有一個固定尺寸的頁面左右滾動,因爲它太寬,並且極難傳輸信息。
「圖像」方法有其缺點 - DPI分辨率浮現在腦海。 PDF似乎是最簡單的方法。 – Piskvor 2009-01-21 14:05:57
不,沒有辦法,因爲在呈現HTML時您無法知道打印機類型或紙張大小。
我唯一的建議是將打印機屬性設置爲在打印時縮放內容以適合一頁。
使用PDF。你可以強制許多東西,如字體大小,字體類型和許多其他參數,但任何瀏覽器可以決定他們不關心和使用他們想要的任何東西,因此違反了你的先決條件或決定。 HTML不是(在我之後重複:不是)演示語言。
在很多情況下,它將主要工作,但沒有什麼是確定的。
不,但是您可以使用打印介質的專用CSS文件使打印視圖更平滑,就像上面提到的那樣。
然後,您可以例如至少通過使用 "page-break-before: always;"防止表跨越2頁。
最後,你也可以使用上是不必要像廣告,導航條等,以保持頁面本身較短(足夠短的單頁,希望)元素 "display:none;"。
雖然沒有保證。
- 1. 我可以強制在HTML打印中跳轉頁面嗎?
- 2. 我可以強制Outlook 2007規則僅打印第一頁嗎?
- 3. 我可以強制歸檔Nlog文件嗎
- 4. 我可以強制git diff將文件視爲副本嗎?
- 5. 我可以強制生成JVM崩潰日誌文件嗎?
- 6. 我可以強制類型爲json文件嗎?
- 7. 我可以強制UL成爲OL嗎?
- 8. 我可以強制WPF渲染層嗎?
- 9. 我可以強制斷言刷新嗎?
- 10. 我可以「強制」線程喚醒嗎?
- 11. 我可以強制.htaccess刷新嗎?
- 12. 我可以強制MVC獲取新頁面嗎?
- 13. 'to_yaml'時,我們可以強制渲染文本爲二進制文件嗎?
- 14. 我可以換一個長文件名嗎?
- 15. 我可以製作一個.exe文件的.vbs文件嗎?
- 16. 我可以通過另一個HTML導入文件導入HTML文件嗎?
- 17. 我可以強制網頁瀏覽器發送表單文本爲UTF8嗎?
- 18. 我可以強制文字完全按照單詞分解嗎?
- 19. 響應式CSS:我可以強制渲染替代文字嗎?
- 20. 這是我們可以強制ObjectDataSource ...的唯一方法嗎?
- 21. 我可以從外部文件只導入一段html嗎?
- 22. 我可以在用戶控件內強制編譯錯誤嗎?
- 23. 我可以強制CustomUnboundColumnData事件被引發嗎?
- 24. 我可以強制在MySQL
- 25. 我可以使用insertAdjacentHTML添加一長串html標籤和文本嗎?
- 26. 可以強制svn diff顯示svn cp'd文件嗎?
- 27. 我可以連接文本/ html文件與一些軟批文件嗎?
- 28. 我可以使用HTML頁面作爲另一個HTML頁面的內容嗎?
- 29. 我可以在setContentView調用後強制繪製嗎?
- 30. 我可以強制GAE爲CSS文件設置緩存標頭嗎?
如果您想要對打印輸出進行全面控制,PDF就是要走的路。 – 2009-01-21 14:05:05
「您無法控制用戶的紙張尺寸[...]」 - 對打印機進行成像會裁剪紙張以適應作者設置。 :) – Gumbo 2009-01-21 14:08:42