标签: itext

如何定位和包装长文本?

我现在可以制作的PDF: 截图http://yart.com.au/junk/itextsharp_problem.jpg

我希望文本填满左下方的空间.我怎样才能做到这一点?谢谢!

这是我的代码:

private static void CreatePdf4(string pdfFilename, string heading, string text, string[] photos, string emoticon)
{
  Document document = new Document(PageSize.A4.Rotate(), 26, 36, 0, 0);
  PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfFilename, FileMode.Create));
  document.Open();

  // Heading
  Paragraph pHeading = new Paragraph(new Chunk(heading, FontFactory.GetFont(FontFactory.HELVETICA, 54, Font.NORMAL)));
  document.Add(pHeading);

  // Photo 1
  Image img1 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[0]));
  img1.ScaleAbsolute(350, 261);
  img1.SetAbsolutePosition(46, 220);
  img1.Alignment = Image.TEXTWRAP;
  document.Add(img1);

  // Photo 2
  Image img2 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[1]));
  img2.ScaleAbsolute(350, 261);
  img2.SetAbsolutePosition(438, 220);
  img2.Alignment = Image.TEXTWRAP; …
Run Code Online (Sandbox Code Playgroud)

itext

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

如何在Java中自动化PDF表单填充

我正在为我住的地方附近的食品储藏室做一些"无偿"的开发.他们被表格和文书工作所淹没,我想开发一个简单地从他们的MySQL服务器(我在之前的项目中为他们设置)中读取数据的系统,并将数据提供给他们所需的所有表格的PDF版本.填写.这将极大地帮助他们并为他们节省大量时间,并消除填写这些表格时产生的许多人为错误.

不知道任何有关PDF文件的内部,我可以预见这里有两个途径:

  • 更难的方法:可以扫描纸质文档,将其转换为PDF,然后使用"填写"PDF的软件,只需说" 向下面的(x,y)坐标添加除了blah之外的文本......" ; 要么
  • 更简单的方法:PDF规范已经允许构建可以填写的"字段"; 这样我就可以编写代码"将文本摘录等等添加到名为*address_value*...的字段"等.

所以我的第一个问题是:我面临的两条途径中的哪一条?PDF是否具有"字段"的概念,还是需要通过告诉PDF库放置数据的位置的像素坐标来"填写"这些文档?

其次,我显然需要一个开源(和Java)库来完成这项工作.iText似乎是一个良好的开端,但我听说它可能很难合作.任何人都可以在这里提出一些想法或一般建议吗?提前致谢!

java forms pdf itext

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

22
推荐指数
3
解决办法
7万
查看次数

iTextSharp创建页脚#of#

我正在尝试使用iTextSharp在PDF文档的每个页面上创建一个页脚,其格式为Page#of#,跟随iText页面和书籍上的教程.虽然我一直在cb.SetFontAndSize(helv,12)上得到一个例外; - 未将对象引用设置为对象.有谁能看到这个问题?代码如下.

谢谢,罗布

public class MyPdfPageEventHelpPageNo : iTextSharp.text.pdf.PdfPageEventHelper
{
    protected PdfTemplate total;
    protected BaseFont helv;
    private bool settingFont = false;

    public override void OnOpenDocument(PdfWriter writer, Document document)
    {
        total = writer.DirectContent.CreateTemplate(100, 100);
        total.BoundingBox = new Rectangle(-20, -20, 100, 100);

        helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    }

    public override void OnEndPage(PdfWriter writer, Document document)
    {
        PdfContentByte cb = writer.DirectContent;
        cb.SaveState();
        string text = "Page " + writer.PageNumber + " of ";
        float textBase = document.Bottom - 20;
        float textSize = 12; …
Run Code Online (Sandbox Code Playgroud)

.net c# pdf itext itextsharp

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

如何计算iText中的字符串宽度?

我正在使用iText写一个PDF.在某些情况下,我需要使用该SetVisibleSignature功能对PDF进行签名.使用此功能,我们需要指定要将内容写入的矩形.

但是我很难计算出字符串的宽度,这样我就可以在设置PDF上的签名之前设置矩形.

如何计算iText中的字符串宽度?

pdf pdf-generation itext text-width

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

在哪里获得PDF数字签名证书?

我正在开发一个Java应用程序,它使用iText对可在线提供的PDF进行数字签名.我已经能够使用从GlobalSign获得的测试证书签署文档,并且它非常有用.测试证书是GlobalSign的"DocumentSign for Adob​​e PDF"的一部分.我必须使用此证书的原因是我的证书链回到Adobe Root CA,据我所知(我可能是错的)是Adobe Reader开箱即用的唯一CA.我尝试了VeriSign和Entrust的常规SSL证书,但是由于它们不受信任而无法正常工作.

现在我需要获得永久性证书,但GlobalSign(以及VeriSign和其他人)想要向我推销一项服务,该服务需要额外的硬件来进行我不想要的双因素身份验证.似乎没有办法获得证书.我的问题是,还有其他人经历过这个吗?是否有其他方法可以获得Adobe Reader将信任的证书(除了让最终用户手动将证书输入到可信证书列表中)?我错过了什么吗?

感谢您的任何帮助,您可以提供.

itext digital-signature x509

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

itext绝对定位文本

在itext中我有一个块/短语/段落(我不介意哪个),我想在页面上的其他位置定位,例如300 x 200.我该怎么做?

.net java itext itextsharp

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

对齐页面中心的段落

我正在使用itext生成pdf文件.我想在页面中间对齐我的标题.目前我正在使用这样的

Paragraph preface = new Paragraph();  
for (int i = 0; i < 10; i++) {
    preface.add(new Paragraph(" "));
}
Run Code Online (Sandbox Code Playgroud)

这是正确的还是有其他最好的方法来做到这一点.

java pdf itext

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

如何使用itext进行分页

我想用itext生成一个pdf.我会在某些时候添加内容以进行分页.我需要插入几个单独的conenidos依赖来源,所以我要求用户在单独的页面上这样做.有任何想法吗???

java itext

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

让PdfStamper使用MemoryStreams(c#,itextsharp)

我找到了重新编写旧代码的方法,这些代码将PDF文件签名为新文件,这标志着来自Web服务的MemoryStreams(字节数组).简单吧?那是昨天.今天我无法让它发挥作用.

这是旧代码,它使用FileStreams并且它可以工作:

    public static string OldPdfSigner(PdfReader pdfReader, string destination, string password, string reason, string location, string pathToPfx)
    {
        using (FileStream pfxFile = new FileStream(pathToPfx, FileMode.Open, FileAccess.Read))
        {
            ...

            using (PdfStamper st = PdfStamper.CreateSignature(pdfReader, new FileStream(destination, FileMode.Create, FileAccess.Write), '\0'))
            {
                PdfSignatureAppearance sap = st.SignatureAppearance;
                sap.SetCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
                sap.Reason = reason;
                sap.Location = location;
                return destination;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

下面是我自己重做的内容,它抛出System.ObjectDisposedException:无法访问已关闭的Stream.

    public static byte[] PdfSigner(PdfReader pdfReader, string password, string reason, string location, string pathToPfx)
    {
        using (FileStream pfxFile = new FileStream(pathToPfx, FileMode.Open, …
Run Code Online (Sandbox Code Playgroud)

c# pdf memorystream itext pdfstamper

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