2016-07-12 54 views
1

美好的一天,我已閱讀關於「PDF to SVG」,「PDF to PNG,PNG to SVG」的所有問題和答案,並沒有成功完成我的任務。如何將10MB PDF快速轉換爲適合網頁大小的SVG

我有一個約10mb的PDF(來自archiCAD的藍圖),使用pdf2svg轉換爲SVG後,SVG約爲70mb。轉換需要14秒,但由於SVG的大小,網頁加載大約需要150秒。

我的問題是 - 我如何將PHP中的PDF轉換爲適合SVG大小的網頁,而不會造成質量損失,也不會對其進行壓縮?

此代碼轉換PDF至SVG是70MB:

$fileName = 'in.pdf'; 
$targetName = 'out.svg'; 
exec("pdf2svg ".escapeshellarg($fileName)." ".escapeshellarg($targetName)); 

這一個轉換的PDF與巨大的質量損失,一些路徑損耗,文字損失500KB SVG等

exec("convert -density 200 ".escapeshellarg($fileName)." middle.png"); 
exec("inkscape middle.png --export-plain-svg=".escapeshellarg($targetName)); 

伊夫嘗試過imagemagick,autotrace,potrace,inkscape,pdf2svg。 我試過了「convert pdf to svg」的答案。其他問題(在SO上)甚至不是我所需要的。

我幾乎讀過谷歌上的每一個鏈接,幾乎每個主題都能完成我的任務,但它們都以小尺寸PDF開頭,所以它不能解決我的問題。

+0

聽起來有點像「請聯繫您的信任魔術師」對我來說,SCNR ;-) –

回答

1

爲什麼你要在絕對SVG? 如果您使用Ghostscript縮小PDF,圖像將保持原樣,只需更改分辨率即可。

我已經使用ghostscript將PDF轉換爲更小的尺寸。它比convert(imagick)更簡單快捷。

我想你可以在http://www.ghostscript.com/doc/current/Use.htm找到答案的一些部分。

我用這個減少PDF中的「電子書」的質量方針:

exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -sOutputFile='.$outfile.' '.$file.' ',$output, $return_var); 
相關問題