2009-11-25 94 views
0
$ps = ps_new(); 
ps_open_file($ps,$filename); 
ps_begin_page($ps,$size,$size); 
ps_set_parameter($ps, 'SearchPath' , '/usr/share/texmf-texlive/fonts/afm/bluesky/cm'); 
$psfont = ps_findfont($ps, "cmr10", "", 0); 

ps_setfont($ps, $psfont, 12.0); 

ps_circle($ps,$size/2,$size/2,$size/10); 
ps_circle($ps,$size/4,$size/2,1); 
ps_circle($ps,$size/2,$size/4,1); 
ps_circle($ps,$size/4,$size/4,1);  
ps_fill($ps); 


//ps_show_xy($ps, 'test',$size/8,$size/8); 
//ps_stroke($ps); 

ps_end_page($ps); 
ps_close($ps); 
ps_delete($ps); 

如果我註釋掉ps_setfont行,它會正確保存包含一些實心圓的.ps文件。使用PHP生成Postscript:瀏覽器提供保存文件

隨着ps_setfont行未被註釋掉,firefox提供了用.php文件名保存某些內容,但保存的內容是0字節長。

我不明白,爲什麼這個「下載」正在提供:-S

回答

0

也許它的一些錯誤輸出ps_setfont發生的事()調用行。嘗試設置:

error_reporting(E_ALL); 

並檢查日誌中的錯誤消息或將其作爲輸出發送給瀏覽器之前。一旦消除錯誤輸出,腳本應該工作正常。

+0

我有一些這樣在Apache的error.log中結束: [週三11月25日11點20分42秒2009] [聲明]兒童PID 18600退出信號分割故障(11) 注:.PS文件不應該發送到瀏覽器,我會在稍後將它包含在LaTeX中,並輸出一個單獨的.pdf – Emyr 2009-11-25 11:37:14

+0

您發佈的代碼是否完整或者有更多?我認爲這個腳本是基於你提到的Firefox生成和提供.ps文件。那麼它是如何要求的? – bbb 2009-11-25 12:40:56

+0

我的腳本使用exec(「cd $ path && latex $ filename && pdflatex $ filename」,$ output),然後讀取文件($ pdf),將LaTeX寫入到.tex文件中生成的pdf。這段代碼要做的是生成一個後綴圖,它將嵌入到pdf中。 上面代碼中缺少的部分是設置$ filename和$ size的位。 我猜測,PHP發送錯誤的標題沒有內容,因爲段錯誤。 – Emyr 2009-11-25 14:25:05

相關問題