簡體   English   中英

Xamarin.Forms 無法使用 EvoHtmlToPdfclient 將 html 字符串轉換為 pdf 文件

[英]Xamarin.Forms failing to use EvoHtmlToPdfclient in order to convert html string to a pdf file

我正在使用 Xamarin.Forms,我正在嘗試使用 EvoPdfConverter 將 html 字符串轉換為 pdf 文件,但問題是當我嘗試這樣做時,在htmlToPdfConverter.ConvertHtmlToFile(htmlData, "", myDir.ToString()); 在下面的代碼片段中,應用程序只是凍結,什么也不做,似乎它想連接到給定的 IP,但它不能,但是我沒有收到任何錯誤或異常! 連抓都沒有!! 有誰知道我應該怎么做才能解決這個問題? 這是我的代碼:

public  void ConvertHtmlToPfd(string htmlData)
{
 ServerSocket s = new ServerSocket(0);
 HtmlToPdfConverter htmlToPdfConverter = new 
 HtmlToPdfConverter(GetLocalIPAddress(),(uint)s.LocalPort);
 htmlToPdfConverter.TriggeringMode = TriggeringMode.Auto;
 htmlToPdfConverter.PdfDocumentOptions.CompressCrossReference = true;
 htmlToPdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Best;

  if (ContextCompat.CheckSelfPermission(Android.App.Application.Context, Manifest.Permission.WriteExternalStorage) != Permission.Granted)
   {
      ActivityCompat.RequestPermissions((Android.App.Activity)Android.App.Application.Context, new String[] { Manifest.Permission.WriteExternalStorage }, 1);
   }
  if (ContextCompat.CheckSelfPermission(Android.App.Application.Context, Manifest.Permission.ReadExternalStorage) != Permission.Granted)
   {
      ActivityCompat.RequestPermissions((Android.App.Activity)Android.App.Application.Context, new String[] { Manifest.Permission.ReadExternalStorage }, 1);
   }

    try
        {

          // create the HTML to PDF converter object
          if (Android.OS.Environment.IsExternalStorageEmulated)
            {
              root = Android.OS.Environment.ExternalStorageDirectory.ToString();
            }
                htmlToPdfConverter.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";
                htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
                htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
                Java.IO.File myDir = new Java.IO.File(root + "/Reports");
                try
                {
                    myDir.Mkdir();
                }
                catch (Exception e)
                {
                    string message = e.Message;
                }
                Java.IO.File file = new Java.IO.File(myDir, filename);

                if (file.Exists()) file.Delete();

               htmlToPdfConverter.ConvertHtmlToFile(htmlData, "", myDir.ToString());

            }
            catch (Exception ex)
            {
                string message = ex.Message;                
            }
}

您可以嘗試將 ConvertHtmlToFile 調用的基本 URL 設置為第二個參數嗎? 您傳遞了一個空字符串。 這有助於將 HTML 中的相對 URL 解析為完整 URL。 嘗試從無效資源 URL 檢索內容時,轉換器可能會出現延遲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM