微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Select.pdf 将 url 下载为 pdf 时使用特定字体

如何解决使用 Select.pdf 将 url 下载为 pdf 时使用特定字体

我希望从使用 vb.net 在 Visual Studio 中制作的经销商网上商店下载发票。问题是当从发布的代码下载时,下载的 pdf 的字体总是 Lucida Console,而在本地执行时它是 OpenSans。字体应为 OpenSans、Calibri、Helvetica 或类似字体。问题始于声称支持 Select.pdf 的网络酒店更换了服务器。

我希望能够管理从已发布的应用程序下载的pdf发票的字体,但尚未找到解决方案。

html转pdf代码如下:

    'instantiate a html to pdf converter object
    Dim converter As New HtmlToPdf()
    Dim url As String = "invoice.aspx?EditOrdreId=" & Session("EditordreID")

    ' set converter options
    converter.Options.pdfpageSize = pdfpageSize.A4
    converter.Options.pdfpageOrientation = pdfpageOrientation.Portrait
    converter.Options.MarginLeft = 10
    converter.Options.MarginRight = 10
    converter.Options.MarginTop = 20
    converter.Options.MarginBottom = 20
    converter.Options.AutoFitWidth = HtmlTopdfpageFitMode.AutoFit
    converter.Options.WebPageWidth = 740
    converter.Options.HttpCookies.Add("kultu",CultureInfo.CurrentCulture.ToString)
    converter.Options.EmbedFonts = True

    ' set css @media print
    converter.Options.CssMediaType = HtmlToPdfCssMediaType.Print

    'create a new pdf document converting the html string of the page
    Dim doc As PdfDocument = converter.ConvertUrl(url)

    'save pdf document
    Try
        Dim DetConnection As String = ConfigurationManager.ConnectionStrings("PrimaryConnection").ToString()
        Dim sqlDet As String = "SELECT [orders].[KundeID],[orders].[invoice_no],[orders].[delivery_date],[kunder].[firma] FROM [orders] INNER JOIN [kunder] ON [orders].[KundeID] = [kunder].[KundeID] WHERE [orders].[id] = @orderid "
        Dim cnDet As New sqlConnection(DetConnection),cmdDet As New sqlCommand(sqlDet,cnDet)
        cmdDet.Parameters.AddWithValue("@orderid",Convert.ToInt32(HttpContext.Current.Session("EditordreID")))
        cnDet.open()
        Dim readerDet As sqlDataReader = cmdDet.ExecuteReader
        While readerDet.Read()
            Dim invoiceno As String = readerDet("invoice_no").ToString
            Dim firma As String = readerDet("firma")
            Dim dato As String = Left(readerDet("delivery_date").ToString,10)

            doc.Save(Response,False,Year(Now) & "-" & invoiceno & "_" & Replace(firma," ","_") & "_invoice_" & dato & ".pdf")

        End While

    Catch ex As Exception
        Response.Write(ex.Message)
    End Try

    'close pdf document
    doc.Close()      

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。