标签: itextsharp

Html to pdf一些字符丢失(itextsharp)

我想使用itextsharp库将gridview导出为pdf.问题是在pdf文档中缺少一些土耳其字符,如İ,ı,Ş,ş等.用于导出pdf的代码是:

 protected void LinkButtonPdf_Click(object sender, EventArgs e)
    {
        Response.ContentType = "application/pdf";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.AddHeader("content-disposition", "attachment;filename=FileName.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        System.IO.StringWriter stringWrite = new StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        GridView1.RenderControl(htmlWrite);
        StringReader reader = new StringReader(textConvert(stringWrite.ToString()));
        Document doc = new Document(PageSize.A4);
        HTMLWorker parser = new HTMLWorker(doc);
        PdfWriter.GetInstance(doc, Response.OutputStream);
        doc.Open();
        parser.Parse(reader);
        doc.Close();
    }
    public static string textConvert(string S)
    {
        if (S == null) { return null; }
        try
        {
            System.Text.Encoding encFrom = System.Text.Encoding.UTF8;
            System.Text.Encoding encTo = System.Text.Encoding.UTF8;
            string str = S;
            Byte[] b = …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net pdf-generation itextsharp

9
推荐指数
2
解决办法
3万
查看次数

9
推荐指数
1
解决办法
2248
查看次数

ItextSharp - 使用C#自动填写pdf表单 - 复选框问题

我正在填写使用Acrobat pro和iTextSharp&C#创建的pdf表单,并且在尝试勾选复选框字段时发现自己卡住了.

我有它的单选按钮和文本框,但似乎无法使复选框工作.我还确认了这个案例中的复选框名称"Q7b"在acrobat文档中是正确的,可以使用下面的代码在表单上找到它

private string getfieldnames(AcroFields fields)
{
    StringBuilder sb = new StringBuilder();

    foreach (string key in fields.Fields.Keys)
    {

        sb.Append(key + Environment.NewLine);
    }
    return sb.ToString();

}
Run Code Online (Sandbox Code Playgroud)

我用来更新复选框的代码如下

using (MemoryStream pdfFlat = new MemoryStream())
{

    PdfReader pdfReader = new PdfReader(strPath);
    PdfStamper pdfStamp = new PdfStamper(pdfReader, pdfFlat);
    AcroFields fields = pdfStamp.AcroFields;

    //textfields
    fields.SetField("Initiating_Doctor", "Doctor A");
    fields.SetField("Speciality", "Surgeon");

    //Radiobuttons
    fields.SetField("PRELIM_Q1", "Yes");
    fields.SetField("PRELIM_Q2", "No");
    fields.SetField("PRELIM_Q3", "No");
    fields.SetField("PRELIM_Q4", "No");

    //checkbox - Set the checkbox to checked but this does not work.
    fields.SetField("Q7b", "Yes");

    pdfReader.Close();
    pdfStamp.FormFlattening …
Run Code Online (Sandbox Code Playgroud)

c# pdf itextsharp

9
推荐指数
2
解决办法
2万
查看次数

如何使用iTextSharp 4.1.6提取文本?

iTextSharp 4.1.6是LGPL许可的最后一个版本,可以免费用于商业用途而无需支付许可费.

对于某些人而言,对于我来说,如何使用此版本提取文本可能会很有趣.

有没有人有想法?

c# text-extraction itextsharp

9
推荐指数
1
解决办法
6270
查看次数

itextsharp将点数转换为cm

我正在使用iTextsharp- 一个java pdf lib - 动态生成pdfs.据我所知,测量结果以点数表示.我知道在哪里放置厘米的地方.所以我需要转换:点< - > cm

c# itextsharp

9
推荐指数
1
解决办法
1万
查看次数

如何使用所有者密码解密PDF文档?

我需要能够从某些PDF文档中删除安全性/加密,最好使用itextsharp库.过去,这是可能的(如何通过提供文件使用C#参数的密码解密一个pdf文件?),但最近的变化到库意味着解决方案不再起作用.

我知道这可以通过Aspose PDF库(示例)完成,但这似乎是一个昂贵的选择.

编辑

所以这一次我以为我拥有我用来测试这个文档的所有者密码.但实际上我的密码是用户密码.的原因,我认为这是所有者密码,是因为它作为所有者的密码和其他值没有工作.我相信用户密码代替用户密码的原因是该PdfReader.unethicalreading字段被设置为true(它是一个碰巧在代码中的其他地方设置的全局标志).

c# pdf encryption itextsharp

9
推荐指数
2
解决办法
7663
查看次数

从Web应用程序打印

如何从Web应用程序生成纸质打印?

具体来说,我正在考虑更复杂的纸质文件,如文凭,发票和合同.包含框架,表格,徽标和页眉/页脚的可变页数.

今天我使用自定义表单和CSS用于某些事情,iTextSharp用于其他人(我使用asp.net和MS-SQL),但我认为这两种方法都非常耗时且很难在不同文档中保持一致.

还有更好的方法吗?

printing asp.net web-applications itext itextsharp

8
推荐指数
1
解决办法
4708
查看次数

ITextSharp PdfCopy使用示例

我正在尝试使用ItextSharp中PdfSmartCopy,但我在c#中找不到任何相关的例子.

我的意思是我有一个包含表单字段的pdf,并且这些字段增加了700kb到pdf文档的大小.没有表单字段的原始文档是100kb.欢迎任何其他sugestions,尤其是o一致地减少pdf大小.

(我使用adobe acrobat优化了生成的PDF,并将其减少到44kb.因此必须在某处出现故障.)有没有办法减少PDF大小?

编辑:FormFlatenning没有帮助.pdf模板文件仅包含文本,行和表,没有图像.

这是我的代码片段

        PdfReader reader = new PdfReader(GetTemplateBytes());
        pst = new PdfStamper(reader, Response.OutputStream);
        var acroFields = pst.AcroFields;

        pst.FormFlattening = true;
        pst.FreeTextFlattening = true;

        SetFieldsInternal(acroFields);

        pst.Close();
Run Code Online (Sandbox Code Playgroud)

c# asp.net pdf-generation itextsharp

8
推荐指数
1
解决办法
3万
查看次数

如何将带图像的段落添加到iTextSharp表格中的单元格?

我正在创建一个解析器,将Word文档转换为PDF,并在此过程中进行一些专门的处理.我选择使它成为一个递归解析器,以匹配OpenXml的结构.

我遇到了处理图像的一些问题.给定OpenXml的结构,图像始终是段落内的绘图元素.如果该段落直接在doc中,这样可以正常工作,基本上就是这样(对于这个例子来说,解开了递归):

using (var document = new Document(PageSize.A4))
{
    PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
    document.Open();

    var paragraph = new Paragraph();

    var image = Image.GetInstance(@"C:\image1.jpg");

    paragraph.Add(image);
    document.Add(paragraph);

    document.Close();
}
Run Code Online (Sandbox Code Playgroud)

此代码正确地将图像插入到文档中.当图像在表格内时会出现问题,这在我们正在处理的文档中很常见.OpenXml结构最终会像这样结束:

DocumentBody => Table => Cell => Paragraph => Drawing

所以在iTextSharp术语中,映射到:

Document => Table => Cell => Paragraph => Image

将带有图像的段落直接添加到单元格会生成一个空的零高度表.如果我添加块到该段时的形象出现,但大幅调整(小) - 我想不出什么是大小调整的依据是:

using (var document = new Document(PageSize.A4))
{
    PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
    document.Open();

    var paragraph = new Paragraph();

    var image = Image.GetInstance(@"C:\image1.jpg");

    paragraph.Add(new Chunk(image, 0, 0));

    var table = new PdfPTable(1); …
Run Code Online (Sandbox Code Playgroud)

c# itextsharp

8
推荐指数
1
解决办法
1万
查看次数

是否可以使用itextSharp将PDF页面转换为图像?

您好我一直在使用itextSharp为dot.net中的所有pdf相关项目.我遇到了一个需要将PDF页面转换为图像的要求.我找不到任何这样的样品.我发现另一个工具ghostscript能够做到这个问题是我在共享主机上我不认为ghostscript将在服务器上运行,因为在我的本地机器我不得不手动将ghost脚本dll复制到system32文件夹在共享主机中是不可能的.

c# pdf asp.net itextsharp

8
推荐指数
1
解决办法
2万
查看次数