标签: itextsharp

iTextSharp正在生成一个损坏的PDF

下面的代码片段返回一个损坏的PDF文档,但是如果我返回mergedDocument,它总是返回一个有效的PDF.mergedDocument基于我使用Word创建的PDF文件,而完成的文档完全以编程方式生成.代码"有效",因为它不会抛出异常.为什么iTextSharp会创建一个损坏的PDF?

byte[] completedDocument = null;            
using (MemoryStream streamCompleted = new MemoryStream())
{
    using (Document document = new Document())
    {                    
        PdfCopy copy = new PdfCopy(document, streamCompleted);
        document.Open();
        copy.Open();                    

        foreach (var item in eventItems)
        {
            byte[] mergedDocument = null;
            PdfReader reader = new PdfReader(pdfTemplates[item.DataTokens[NotifyTokenType.OrganisationID]]);
            using (MemoryStream streamTemplate = new MemoryStream())
            {
                using (PdfStamper stamper = new PdfStamper(reader, streamTemplate))
                {
                    foreach (var token in item.DataTokens)
                    {
                        if (stamper.AcroFields.Fields.Any(fld => fld.Key == token.Key.ToString()))
                        {
                            stamper.AcroFields.SetField(token.Key.ToString(), token.Value);
                        }
                    }
                    stamper.FormFlattening = true;
                    stamper.Writer.CloseStream = false; …
Run Code Online (Sandbox Code Playgroud)

.net c# itext itextsharp

6
推荐指数
1
解决办法
6957
查看次数

使用iTextSharp文本的合理性如何?

有一段代码如下:

 var workStream = new MemoryStream();
 var doc = new Document(PageSize.LETTER, 10, 10, 42, 35);
 PdfWriter.GetInstance(doc, workStream).CloseStream = false;
 doc.Open();

 var builder = new StringBuilder();
 builder.Append("MY LONG HTML TEXT");
 var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(builder.ToString()), null);

 foreach (var htmlElement in parsedHtmlElements)
       doc.Add(htmlElement);

doc.Close();

byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return new FileStreamResult(workStream, "application/pdf")
Run Code Online (Sandbox Code Playgroud)

并且有一个问题 - 如何使pdf合理化?有什么方法可以快速做到吗?

c# itextsharp

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

在pdfptable中设置行之间的空间

我正在使用iTextSharp来创建pdf.

是否可以在pdfptable中的行之间提供空间?

itextsharp

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

iTextSharp Html到Pdf图像src

使用iTextSharp将html转换为pdf

public static MemoryStream CreatePdfFromHtml(
        string html, List<Attachment> attachments)
    {
        MemoryStream msOutput = new MemoryStream();

        using (TextReader reader = new StringReader(html))
        using (Document document = new Document())
        {
            PdfWriter writer = PdfWriter.GetInstance(document, msOutput);
            document.Open();

            foreach (var a in attachments)
            {
                var image = iTextSharp.text.Image.GetInstance(a.File);
                document.Add(image);
            }

            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, reader);

            writer.CloseStream = false;
            document.Close();
            msOutput.Position = 0;
            return msOutput;
        }
    }
Run Code Online (Sandbox Code Playgroud)

html以这种方式包含几个嵌入的图像.这种方法是首选,因为相同的HTML是通过电子邮件发送LinkedResourcesAlternateView.

foreach (var a in attachments)
{
    //not production code
    html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
} …
Run Code Online (Sandbox Code Playgroud)

c# itextsharp

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

如何获取XFA表单中的字段列表?

我正在尝试获取我的XFA表单中所有字段的简单列表.我正在使用此代码:

private void ListFieldNames()
{
    string pdfTemplate = @"C:\Projects\iTextSharp\SReport.pdf";
    MemoryStream m = new MemoryStream();

    // title the form
    this.Text += " - " + pdfTemplate;

    // create a new PDF reader based on the PDF template document
    PdfReader pdfReader = new PdfReader(pdfTemplate);
    PdfStamper pdfStamper = new PdfStamper(pdfReader, m);
    AcroFields formFields = pdfStamper.AcroFields;        
    AcroFields form = pdfReader.AcroFields;
    XfaForm xfa = form.Xfa;
    StringBuilder sb = new StringBuilder();
    sb.Append(xfa.XfaPresent ? "XFA form" : "AcroForm");
    sb.Append(Environment.NewLine);

    foreach (string key in form.Fields.Keys)
    {
        sb.Append(key);
        sb.Append(Environment.NewLine); …
Run Code Online (Sandbox Code Playgroud)

c# xfa itextsharp

6
推荐指数
1
解决办法
5133
查看次数

c#PDF格式的高分辨率图像

我正在尝试将高质量的图像放入PDF(每页一个).但如果我将页面大小设置为a4,我必须调整我的图片大小,因为它们太大了.然后他们失去了质量.有没有办法将大图像放到A4页面而不会失去质量?

我正在使用iTextSharp库,首先我正在创建文档

document = new Document(PageSize.A4, 0, 0, 0, 0);
FileStream output = new FileStream(pdfPath + "document.pdf", FileMode.Create);
PdfWriter writer = PdfWriter.GetInstance(document, output);
document.Open();
Run Code Online (Sandbox Code Playgroud)

然后我要添加每张图片

document.Add(iTextSharp.text.Image.GetInstance(toSaveImage, System.Drawing.Imaging.ImageFormat.Tiff));
Run Code Online (Sandbox Code Playgroud)

并关闭文件

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

c# pdf image itextsharp

6
推荐指数
1
解决办法
6583
查看次数

iTextSharp:在PdfPCell中使用哪些对齐属性?

当我使用单元格的对齐,所以它的工作原理:

PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font));
cell1.HorizontalAlignment = 2;
Run Code Online (Sandbox Code Playgroud)

但是一旦对齐不起作用:

PdfPCell cell1 = new PdfPCell();
cell1.AddElement(new Phrase("Text 1", Font));
cell1.AddElement(new Phrase("Text 2", Font));
cell1.HorizontalAlignment = 2;
Run Code Online (Sandbox Code Playgroud)

原因?

c# itextsharp

6
推荐指数
1
解决办法
5568
查看次数

如何在同一行左右对齐两个段落?

我想在一行上向左侧和右侧显示两段内容(可能是段落或文本).我的输出应该是这样的

 Name:ABC                                                               date:2015-03-02
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# pdf itextsharp

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

哪里下载itextsharp的例子?

我可以在哪里下载使用itextsharp的C#示例?链接http://sourceforge.net/p/itextsharp/code/HEAD/tree/tutorial/signatures/已被破解(对我来说最有趣的是签名).

来自http://support.itextpdf.com/node/178的所有链接都不起作用.

c# pdf itextsharp

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

无法访问pdf生成中的封闭流

当我尝试使用具有多个表的iTextSharp构建PDF文件时,我收到以下错误消息:

无法访问封闭的Stream.

这是我的代码:

//Create a byte array that will eventually hold our final PDF
Byte[] bytes;

List<TableObject> myTables = getTables();
TableObject currentTable = new TableObject();

//Boilerplate iTextSharp setup here
//Create a stream that we can write to, in this case a MemoryStream
using (MemoryStream ms = new MemoryStream())
{
    //Create an iTextSharp Document which is an abstraction of a PDF but **NOT** a PDF
    using (Document doc = new Document(PageSize.A4, 10f, 10f, 10f, 0f))
    {
        foreach (TableObject to in myTables) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net itextsharp

6
推荐指数
2
解决办法
7071
查看次数

标签 统计

itextsharp ×10

c# ×9

pdf ×3

.net ×1

asp.net ×1

image ×1

itext ×1

xfa ×1