我成功地設法添加顯示和打印svg到我的應用程序的能力,以實現我已經使用https://github.com/vvvv/SVG。庫從提供的SVG文件中呈現位圖,就編輯而言,這是可以的。問題始於打印。文件打印PrintDocument組件到虛擬PDF打印機,當文本發送到打印是平穩的,svg元素是位圖,我想到的是從svg提供的「高質量」外觀獲益。有沒有辦法將SVG直接發送到打印頁面而不將其轉換爲位圖?如何使用C#打印SVG文件以獲取打印輸出中的位圖和矢量圖像?
0
A
回答
1
一種可能性:當您開始打印時,將SVG重新渲染爲僅用於打印作業的新位圖,其中位圖大小考慮作業的實際打印分辨率。也就是說,如果您以300 dpi打印並希望SVG在2 x 2平方英寸的區域內打印(例如),則位圖將爲600x600位圖,而不是您用於屏幕顯示的任何位圖。
請注意,這意味着您的PDF將包含高分辨率位圖,使其更大。這解決了質量問題,但是以文件大小爲代價。如果沒有一個實際將SVG繪製到Graphics實例的平臺API(我不知道),那麼將SVG數據保存爲矢量格式會更困難。這就是說,我沒有仔細看看你使用的庫,但是如果它使用Windows API渲染成位圖,那意味着可能有HDC(原生Win32)或Graphics(.NET)正在繪製的實例。您可以使用HDC或圖形對象的圖元文件而不是位圖,這將保留渲染的矢量性質,當您將它渲染到PDF打印機驅動程序時,它將保留或(此時它將會完全取決於您無法控制的PDF打印機驅動程序)。
相關問題
- 1. C#打印文檔打印圖像
- 2. 打印地圖矢量
- 3. 捕獲要打印到圖像文件中的打印作業
- 4. 斑馬打印機試圖打印位圖時輸出HEX
- 5. 打印WPF位圖圖像
- 6. 在C++中打印矢量
- 7. 打印圖像打印灰度圖像
- 8. 如何打印位圖圖像?
- 9. 無法打印圖像和位圖
- 10. 我如何打印圖像文件在打印機
- 11. 打印和打印在c#中預覽位圖
- 12. 如何使用jQuery獲取並打印預覽輸入類型文件(圖像)?
- 13. [R矢量不打印預期輸出
- 14. 如何獲取文件打印以創建輸出?
- 15. Java:如何打印矢量?
- 16. C#:從文件打印圖像
- 17. C++如何填充和打印矢量的矢量集
- 18. 使用Windows打印圖像打印圖像對話框
- 19. 通過COMPORT在C#中打印的位圖圖像到POS打印機
- 20. 如何使用QT打印來自打印機的圖像文件
- 21. 將輸出打印到文件中或不打印輸出?
- 22. 打印圖像
- 23. 打印圖像
- 24. 如何使用PHP打印圖像:打印機
- 25. 使用javascript打印圖像
- 26. 使用PHP打印圖像
- 27. 使用SSRS打印圖像
- 28. 在ZPL標籤打印機上打印位圖圖像
- 29. 打印圖像c#.net
- 30. 打印縮放圖像c#
是的,我沒有想到,它不是完美的解決方案,但它現在應該做,我也認爲iTextSharp庫作爲某種解決方案,但它會需要更多的工作從我 – MoreThanChaos 2014-10-21 14:03:03