标签: itextsharp

使用iTextSharp将PDF转换为PDFA1-A

我想要的是在iText中加载一个普通的PDF文件并将其导出(或写入)为PDF/A1-A.

我手动并使用iTextSharp获得了"iText in action sec.edit".仍然进展== null.

c# itext itextsharp pdfa

0
推荐指数
1
解决办法
5664
查看次数

如何设置PdfReader文件路径?

这似乎是一个微不足道的问题,我想打开现有的pdf模板,编辑并展平文件,然后作为电子邮件附件发送.但是如何设置PdfReader来读取我的Content文件夹中的文件(Content/Documents/PDFFile.pdf).这就是我所提供的错误"(无论我尝试什么路径).pdf都没有找到作为文件或资源".

       using (MemoryStream ms = new MemoryStream())
        {
            //Error is here...
            PdfReader reader = new PdfReader("~/Content/Documents/PDFFile.pdf");

            PdfStamper formFiller = new PdfStamper(reader, ms);
            AcroFields formFields = formFiller.AcroFields;
            formFields.SetField("Name", formData.Name);
            formFields.SetField("Location", formData.Address);
            formFields.SetField("Date", DateTime.Today.ToShortDateString());
            formFields.SetField("Email", formData.Email);
            formFiller.FormFlattening = true;
            formFiller.Close();

            MailMessage msg = new MailMessage();

            msg.To.Add(new MailAddress("to@email.com"));
            msg.From = new MailAddress("from@email.com");
            msg.Subject = "Application Form";
            msg.Body = "TEST";
            msg.IsBodyHtml = true;
            msg.Attachments.Add(new Attachment(ms, "Application.pdf", "application/x-pdf"));
            SmtpClient client = new SmtpClient("10.1.1.15");
            client.UseDefaultCredentials = true;
        }
Run Code Online (Sandbox Code Playgroud)

有什么建议/想法/建议吗?

c# pdf asp.net asp.net-mvc itextsharp

0
推荐指数
1
解决办法
3327
查看次数

iTextSharp acroFields.SetField方法和多个具有相同名称的表单字段

如果多个字段具有相同的名称iTextSharp acroFields.SetField(Name, Value),则仅为第一个字段设置值。如何为其余字段设置值?通过acroFields.Fields循环时,字段名称报告为

form1[0].#subform[0].TextField1[0] - TextField
form1[0].#subform[0].TextField2[0] - TextField
form1[0].#subform[0].TextField2[1] - TextField
form1[0].#subform[0].TextField2[2] - TextField
Run Code Online (Sandbox Code Playgroud)

使用时

acroFields.SetField("TextField1", Value);
Run Code Online (Sandbox Code Playgroud)

设置名为TextField1的文本字段的值。只有一个名为TextField1的字段,所以很好。但是当使用

acroFields.SetField("TextField2", Value);
Run Code Online (Sandbox Code Playgroud)

设置名为TextField2 的第一个文本字段的值。其余两个名为TextField2的字段保持不变。

PDF是使用Adobe LiveCycle创建的,并保存为静态PDF,即不是动态XFA。

pdf pdf-generation itext itextsharp

0
推荐指数
1
解决办法
5747
查看次数

如何为每个页面添加图像背景为pdf?

我正在尝试设置pdf的背景并设法用图像设置我的pdf有一个大表,所以页面是自动添加的,而不是使用Document.NewPage()方法,所以图像背景只在第一页上设置.这是添加背景的代码:

    Image backImg = Image.GetInstance(@"D:\websites\DIS\bugs\130208\A4.png");
    backImg.SetAbsolutePosition(0, 0);
    backImg.Alignment = Image.UNDERLYING;

    var doc = new Document(pageSize);
    PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create));
    doc.Open();

    doc.Add(backImg);
    ...
    creating a big table
Run Code Online (Sandbox Code Playgroud)

而不是使用该doc.NewPage()方法.在关闭文档之前,我是否必须循环抛出每个页面并在结尾处添加背景图像,但是如何将其放在后台而不是其他元素之上?

c# itextsharp

0
推荐指数
1
解决办法
6720
查看次数

为什么ITextSharp需要很长时间来创建pdf?

我的应用程序首先加载文本文件在richtextbox whitout任何问题:

        StreamReader str = new StreamReader("C:\\test.txt");

        while (str.Peek() != -1)
        {

            richtextbox1.AppendText(str.ReadToEnd());
        }
Run Code Online (Sandbox Code Playgroud)

之后,我想使用itextsharp将richtextbox的文本导出为pdf格式:

      iTextSharp.text.Document doc = new iTextSharp.text.Document();
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(filename,        FileMode.Create));
        doc.Open();
        doc.Add(new iTextSharp.text.Paragraph(richtextbox1.Text));
        doc.Close();
Run Code Online (Sandbox Code Playgroud)

我使用了背景工作者,但它没有帮助我:

     private delegate void upme(string filenamed);

   private void callpdf(string filename)
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document();
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(filename, FileMode.Create));
        doc.Open();
        doc.Add(new iTextSharp.text.Paragraph(richtextbox1.Text));
        doc.Close();
    }

    private void savepdfformat(string filenames)
 {
     BackgroundWorker bg = new BackgroundWorker();

     bg.DoWork += delegate(object s, DoWorkEventArgs args)
     {
        upme movv = new upme(callpdf);

        richtextbox1.Dispatcher.Invoke(movv, System.Windows.Threading.DispatcherPriority.Normal, filenames);

     };
     bg.RunWorkerCompleted …
Run Code Online (Sandbox Code Playgroud)

c# wpf optimization itextsharp

0
推荐指数
1
解决办法
1182
查看次数

使用iTextSharp(不是AcroFields)替换PDF文件中的文本

我正在使用asp.net C#在iTextSharp上创建PDF文件。我使用iTextSharp创建了许多报告(pdfs),并且都运行良好。现在,我的客户给了我预先格式化的pdf文件,其中有些文本需要替换为数据库值。

现在,我想替换现有pdf文件中的文本并创建一个新的。但正如我在Google上搜索的那样,在iTextSharp中是不可能的。

我现在有一些问题,真的不能使用iTextSharp替换pdf中的文本吗?是否有其他这样做的库或第三方工具(不需要免费许可证)?如果是这样,请给我一些建议。

对于您的信息,我在pdf文件中没有AcroFields,也听说过ASPOSE-PDF文件格式API(这不是免费的)。

c# pdf itextsharp

0
推荐指数
1
解决办法
5359
查看次数

iTextSharp - 在提取页面时,它无法通过Adobe矩形突出显示重要信息

根据以下网站...

http://forums.asp.net/t/1630140.aspx?extracting+pdf+pages+using+itextsharp

...我使用ExtractPages函数根据页码范围生成新的PDF.我的问题是我注意到第二页上有一个矩形的PDF没有随页面一起提取.这让我有些担心,也许Adobe的评论不会随着页面被提取而被转移.

有没有一种方法可以调整此代码,以便在调用ExtractPages时将注释和对象(如矩形)引入新PDF?我错过了语法,还是iTextSharp版本5.5.0不可用?

pdf itextsharp

0
推荐指数
1
解决办法
248
查看次数

如何将表添加为标题?

我正在使用iTextSharp尝试为我生成的PDF添加页眉和页脚,但是,如果我尝试添加宽度为页面100%的页眉,我会遇到一些问题.

所以我做了以下事情:

1)我创建了一个名为PdfHeaderFooter的类,它扩展了iTextSharp PdfPageEventHelper

2)进入PdfHeaderFooter我已经实现了生成头的OnStartPage()方法:

    // write on start of each page
    public override void OnStartPage(PdfWriter writer, Document document)
    {
        base.OnStartPage(writer, document);
        PdfPTable tabHead = new PdfPTable(new float[] { 1F });
        PdfPCell cell;
        //tabHead.TotalWidth = 300F;
        tabHead.WidthPercentage = 100;

        cell = new PdfPCell(new Phrase("Header"));
        tabHead.AddCell(cell);
        tabHead.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent);
    }
Run Code Online (Sandbox Code Playgroud)

如果我使用像tabHead.TotalWidth = 300F那样的东西; insted的tabHead.WidthPercentage = 100; 它运行良好,但如果我尝试将tabHead.WriteSelectedRows(0,-1,150,document.Top,writer.DirectContent)设置为tabHead表的宽度(就像我在前面的例子中所做的那样)的100%它抛出以下异常的方法:

表格宽度必须大于零.

为什么?问题是什么?如果我将其设置为100%,那么该表的大小是多少?

有人可以帮我解决这个问题吗?

TNX

c# pdf pdf-generation itext itextsharp

0
推荐指数
1
解决办法
3317
查看次数

使用iTextSharp xmlworkerhelper的ASP.NET编译器错误

我正在尝试编写一个应用程序,它将触发我在ASP.NET中构建的一系列Web报表.所以我有一个Web应用程序,其中页面存在,但我真的不想使用该网站查看页面,我想创建我可以提供给我的客户的PDF.

我正在尝试编写的应用程序是一个控制台应用程序,在c#中使用Visual Studio 2010编写并使用iTextSharp v5.5.2和.NET 4.5.它目前只是一个框架,因为我尚未完成"解雇PDF"部分.我正在从网上访问一个页面并试图将其保存为PDF,但我找不到任何有关我得到的编译错误的信息.我在应用程序中有以下Using指令:

using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.xml;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using iTextSharp.text.io;
using iTextSharp.text.xml.simpleparser;
using iTextSharp.text.html.simpleparser;

namespace ConsoleApplication1
{
    public partial class BuildReports : System.Web.UI.Page
    {
        static void Main(string[] args)
        {
            WebRequest wReq = WebRequest.Create("http://www.somesite.com/");
            WebResponse wRsp = null;

            try
            {
                wRsp = wReq.GetResponse();
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} exception caught.", …
Run Code Online (Sandbox Code Playgroud)

c# pdf asp.net itextsharp xmlworker

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

itextsharp html到pdf

我想在pdf中更改一些HTML.我的所有HTML都是HTML字符串,但我不知道如何正确传递它iTextSharp.

public void PDF()
        {

            // Create a doc object
            var doc = new doc(PageSize.A4, 50, 50, 25, 25);

            // Create a new PdfWrite object, writing the output to the file ~/PDFTemplate/SimpleFormFieldDemo.pdf
            var output = new FileStream(Server.MapPath("t.pdf"), FileMode.Create);
            var writer = PdfWriter.GetInstance(doc, output);

            // Open the doc for writing
            doc.Open();

            //Add Wallpaper image to the pdf
            var Wallpaper = iTextSharp.text.Image.GetInstance(Server.MapPath("hfc.png"));
            Wallpaper.SetAbsolutePosition(0, 0);
            Wallpaper.ScaleAbsolute(600, 840);
            doc.Add(Wallpaper);


            iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(doc);
            StyleSheet css = new StyleSheet();
            css.LoadTagStyle("body", "face", "Garamond"); …
Run Code Online (Sandbox Code Playgroud)

c# itextsharp

0
推荐指数
1
解决办法
7528
查看次数

iTextSharp字体干扰普通字体

我已将iTextSharp包含在我的项目中,以便能够创建PDF文件.这是我的代码:

Document document = new Document(iTextSharp.text.PageSize.LETTER,20,20,42,35);            
PdfWriter writer =
PdfWriter.GetInstance(document,newFileStream("Test.pdf",FileMode.Create));
document.Open();

Paragraph paragraph = new Paragraph("Test");

document.Add(paragraph);

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

现在错误出现了:Font是System.Drawing.Font和iTextSharp.text.Font之间的模糊引用.

这是带有红色下划线的代码:

RichTextBox tempBox = new RichTextBox();
tempBox.Size = new Size(650,60);
tempBox.Font = new Font(FontFamily.GenericSansSerif,11.0F); //here is error
flowLayoutPanel1.Controls.Add(tempBox);
Run Code Online (Sandbox Code Playgroud)

c# itextsharp

0
推荐指数
1
解决办法
874
查看次数

禁用itextsharp错误消息

我使用C#.NET 3.5开发了Bentley Microstation Addin.此Addin使用itextsharp来创建PDF文件.

在我的情况下,在第一个itextsharp命令:

PdfReader _reader = new PdfReader("...\ab.pdf");
Run Code Online (Sandbox Code Playgroud)

我收到一条消息表格itextsharp: 在此输入图像描述

"无法加载itextsharp.LicenseKey!原因:程序集不是vaild或无法通过'Assembly.LoadForm'加载"

在我确认此消息后,程序运行正常,并且pdf没有错误.消息可能是一个例子?!

如果我将PDF创建部分作为独立的exe运行,则没有任何消息.

我正在寻找解决方案来禁用或捕获此错误.

edit1:这是我的代码的iText部分:

using iTextSharp.text.pdf;
...
PdfReader _reader = new PdfReader("D:\Test\Source.pdf");
PdfStamper _stamper = new PdfStamper(_reader, new FileStream("D:\Test\Destination.pdf", FileMode.Create));

AcroFields _fields = _stamper.AcroFields;
var _fieldKeys = _fields.Fields.Keys;

foreach (string _fieldKey in _fieldKeys)
{
    string _value = "";
    if (_DataMapping.ContainsKey(_fieldKey.Split('.').Last().Replace("[0]", "")))
        _value = _DataMapping[_fieldKey.Split('.').Last().Replace("[0]", "")];
    _fields.SetField(_fieldKey, _value);
}

_stamper.Close();
_reader.Close();
Run Code Online (Sandbox Code Playgroud)

_DataMapping是一个包含字段/值映射的字典.

c# pdf itextsharp microstation

0
推荐指数
1
解决办法
972
查看次数

为iTextSharp罗马尼亚语设置什么编码

我尝试用iTextSharp版本5.5.9.0(我从NuGet添加)创建一个PDF文件.一切正常,但没有和罗马尼亚变音符号(ŞşŢţăĂÂâ).我阅读了很多关于这方面的解决方案,但没有任何作用.现在我建立了一个解决方案,从所有变音符出现只有"ĂĂ ",其他人不出现.那是我的代码:

Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, False)
Dim normalFont As New iTextSharp.text.Font(bf, 9, Font.NORMAL)
Dim par As New Paragraph("??????Ââ", normalFont)
pdfDoc.Add(par)
Run Code Online (Sandbox Code Playgroud)

任何人都可以写我必须编写的编码,以获得所有罗马尼亚变音符号.

解决方案:来自"Paulo Soares"是对的.我只做了一些修正.我从这个网站下载了一种支持罗马尼亚语的字体:https: //www.fontsquirrel.com/fonts/list/language/romanian/,而不是我在myBaseFont上加载它的编码BaseFont.IDENTITY_H 这是代码:

Dim ttfPath As String = "C:\Test\DejaVuSerif.ttf" 'Path to font file
Dim bf As BaseFont = BaseFont.CreateFont(ttfPath, BaseFont.IDENTITY_H, False)
Dim normalFont As New iTextSharp.text.Font(bf, 9, iTextSharp.text.Font.NORMAL)
Run Code Online (Sandbox Code Playgroud)

vb.net pdf itextsharp winforms

0
推荐指数
1
解决办法
226
查看次数