Spire.PDF is a professional PDF library applied to creating, writing, editing, handling and reading PDF files without any external dependencies. Get free and professional technical support for Spire.PDF for .NET, Java, Android, C++, Python.

Thu Mar 28, 2019 8:29 am

各位好, 有件問題想請教大家
我用下列程式去讀取一個HTML檔要轉成PDF檔
可是轉出來後有幾個奇怪的地方
1.標題文字上方有一小部分被截掉
2.表格中原本沒畫線的地方卻畫上線
3.PDF檔有背景顏色

因此想請問一下, 是否還有什麼地方沒處理到才會這樣, 謝謝!
(副檔為原始HTML檔及轉出的PDF檔)
我的開發環境是VS2017 .Net Framework 4.6.1
Spire.PDF是抓官網上的Free版

PdfDocument doc = new PdfDocument();
PdfPageSettings setting = new PdfPageSettings();
setting.Size = PdfPageSize.A4;
string html_url = Server.MapPath(@"template\invoice_A5.html");

Thread thd = new Thread(() => { doc.LoadFromHTML(html_url, false, true, true, setting); });
thd.SetApartmentState(ApartmentState.STA);
thd.Start();
thd.Join();

string pdf_file = Server.MapPath(@"template\invoice_A5.pdf");
doc.SaveToFile(pdf_file);
doc.Close();

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Thu Mar 28, 2019 10:11 am

您好,

我這邊進行了測試,確實發現轉換到PDF後出現了標題被裁切以及表格邊框多出的問題。實在是抱歉。不過我們的Spire.PDF提供了用插件方式轉換HTML到PDF,這個方式轉換出的效果更好,並且使用該方式測試您的文檔不再出现您先前遇到的問題。請用這個方式進行轉換。以下是參考文檔。有什麼問題隨時反饋。
Convert HTML to PDF with New Plugin

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Fri Mar 29, 2019 1:13 am

Dear Nina:

謝謝您, 我這就來試看看您的建議方式^^

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Fri Mar 29, 2019 1:24 am

您好,

測試新方法還有問題嗎?提前感謝您的反饋!

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Fri Mar 29, 2019 7:05 am

Dear Nina:

您好, 我確實下載了zip檔, 並把plugins資料夾放在 C:\Program Files (x86)\e-iceblue\Spire.Pdf-FE\Bin\NET4.6下
專案也加了該路徑下的Spire.Pdf參考
執行該method時
HtmlConverter.Convert(html_text, pdf_file, true, 10 * 1000, new SizeF(612, 792), new Spire.Pdf.Graphics.PdfMargins(0, 0));
出現了以下錯誤訊息
是否還有哪個步驟是我疏忽了
還請您指導一下, 謝謝您!


System.InvalidOperationException
HResult=0x80131509
Message=The conversion provider cann't be found.
Please make sure:
1. the folder "plugins" under the same folder of Spire.Pdf.dll
2. exists "plugins\HTMLConverter.dll" and other "plugins\*.dll"
Source=Spire.Pdf
StackTrace:
於 Spire.Pdf.HtmlConverter.Qt.HtmlConverter.init(String url, Boolean enableJavaScript, Int32 timeout, SizeF pageSize, PdfMargins margins)
於 Spire.Pdf.HtmlConverter.Qt.HtmlConverter.Convert(String url, String fileName, Boolean enableJavaScript, Int32 timeout, SizeF pageSize, PdfMargins margins)
於 Spire.Pdf.HtmlConverter.Qt.HtmlConverter.Convert(String url, String fileName, Boolean enableJavaScript, Int32 timeout, SizeF pageSize, PdfMargins margins, LoadHtmlType urlHtml)
於 EINV_API.get_invoice_pdf.Page_Load(Object sender, EventArgs e) 在 E:\Payware\C#\EInvoice\EINV_API\get_invoice_pdf.aspx.cs:行 169 中

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Fri Mar 29, 2019 8:02 am

您好,

感謝反饋!
請注意這裡的plugins文件夾是需要放在您程序中與Spire.Pdf.dll在同一目錄,比如您這裡是Asp.NET Web項目,就將plugins拷貝在您項目bin文件夾裡,與Spire.Pdf .dll處於同一級。另外我們的插件目前兼容x86平台,對於x64還支持的不是很好。所以請在x86平台測試該方法。有任何問題請隨時反饋。

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Fri Mar 29, 2019 8:20 am

Dear Nina:

您好, 我把plugins資料夾放在專案的bin資料夾後沒有再出現該錯誤
可是轉出來的PDF檔只有1KB的大小, 內容是一片空白的(背景還是淺綠色)
是否還有什麼我沒注意到的地方, 謝謝!

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Fri Mar 29, 2019 8:40 am

您好,

我附上了我的 測試項目,請下載並測試它看是否還有問題發生,如果仍然有問題,就請提供您的測試環境 (比如windows 7, 64bit) 給我們做進一步的調查。

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Fri Mar 29, 2019 9:18 am

Dear Nina:

謝謝您的協助, 已經可以轉出PDF了
可是背景不知為何還是淺綠色的
麻煩您看一下附檔

另外想請問一下, 若紙張格式要設為A4橫向的話
在程式碼裡該如何設定?
謝謝!

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Fri Mar 29, 2019 10:48 am

您好,

我這邊測試得到的Pdf都沒有出現淺綠色的背景,能否提供一下您的測試環境(比如:Win7 64bit)供我們調查?另外您可以換其他電腦測試一下看問題是否存在。
抱歉插件方式沒有PdfPageOrientation屬性可直接指定頁面為橫向/縱向,不過您可以通過交換頁面寬高實現橫向效果。
Code: Select all
//page size
new SizeF(PdfPageSize.A4.Height,PdfPageSize.A4.Width),

Sincerely.
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Mon Apr 01, 2019 1:40 am

Dear Nina:

謝謝您, 後來我發現淺綠色背景是因為我的Win7
(64bit, Professional Service Pack1)
在[視窗色彩及外觀]有設定了色彩為淺綠色的緣故
把它給改為白色後, 轉出的PDF就沒有這個問題
僅此提供這個發現給貴公司研發團隊參考

另外還想請問一下
當HTML內容過長
我想在適當的位置換新頁
請問這在插件裡該如何辦到
麻煩您了, 感恩^^

Best regards,

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Mon Apr 01, 2019 3:09 am

您好,

很高興聽到您已經找到了解決方案的消息,這太好了!
關於在適當的位置換新頁的問題,很抱歉沒有這樣的方法,不過您能自定義頁面大小,這樣生成PDF就會根據您自定義的頁高來換頁。
Code: Select all
//頁面尺寸
new SizeF(800,800),

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1385
Joined: Tue Sep 27, 2016 1:06 am

Thu Apr 11, 2019 3:22 am

Dear Nina:

不好意思, 又有個奇怪的問題想請教您了
我在別的專案也需要使用轉出PDF的功能
確定有將plugins資料夾複製到該專案的bin目錄下
可是執行 Spire.Pdf.HtmlConverter.Qt.HtmlConverter.Convert 語法時卻出現以下錯誤訊息
想請問是否還有別的原因會造成呢?
謝謝!


The conversion provider cann't be found.
Please make sure:
1. the folder "plugins" under the same folder of Spire.Pdf.dll
2. exists "plugins\HTMLConverter.dll" and other "plugins\*.dll"
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外狀況詳細資訊: System.InvalidOperationException: The conversion provider cann't be found.
Please make sure:
1. the folder "plugins" under the same folder of Spire.Pdf.dll
2. exists "plugins\HTMLConverter.dll" and other "plugins\*.dll"

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Thu Apr 11, 2019 7:13 am

Hello,

感謝諮詢。
針對您遇到的問題,請嘗試添加以下代碼指定插件路徑,另外如之前所提到的,此插件目前針對x64還支持的不是很好。所以請參照附件截圖在x86平台測試該方法。
Code: Select all
Spire.Pdf.HtmlConverter.Qt.HtmlConverter.PluginPath = HttpContext.Current.Server.MapPath(@"..\bin\plugins");

Sincerely,
Lisa
E-iceblue support team
User avatar

Lisa.Li
 
Posts: 1536
Joined: Wed Apr 25, 2018 3:20 am

Fri Apr 12, 2019 1:30 am

Dear Lisa:

謝謝您, 加了PluginPath之後已經可以產生PDF了

Best regards,

clarkshih
 
Posts: 10
Joined: Thu Mar 28, 2019 7:26 am

Return to Spire.PDF

cron