iText横向和定位?

标签 itext

我刚刚开始使用 iText(5.4.2,最新版本),有两件事我还没有弄清楚。

  • 横向创建文档。所有页面都呈现纵向。
  • 在给定位置插入图像(距顶部和左侧的毫米数)。

  • 我有下面的代码。
    Document d = new Document(PageSize.A4_LANDSCAPE,0,0,0,0);
    PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream("C:/test.pdf"));
    document.open();
    document.newPage();
    Image img = Image.getInstance(String.format("C:/file.png"));
    img.scaleToFit(400,240);
    document.left(100f);
    document.top(150f);
    document.add(img);
    document.close();
    

    但是页面以纵向(而不是横向)呈现并且图像被放置在左上角(不是按要求离它 10 和 15 个单位)。我究竟做错了什么?

    最佳答案

    您正在使用 PageSize.A4_LANDSCAPE ,一个由贡献者引入的变量,不应该被添加到主版本中。请使用 PageSize.A4.rotate()反而。

    不清楚你想用这些行实现什么:

    document.left(100f);
    document.top(150f);
    

    这些是 getter,而不是 setter。看起来好像您假设 PDF 类似于 HTML。这种假设是错误的。

    如果您希望将图像放置在距左侧 10 个用户单位和距顶部 15 个用户单位的位置(在这种情况下,100 和 150 是错误的值),您可以替换 Document 构造函数中的 0 值以定义左边距10 个用户单位,上边距 15 个用户单位。

    另一种方法是使用方法 setAbsolutePosition() 定义图像的绝对位置。 .在这种情况下,您需要注意坐标系的方向是页面左下角的坐标 x=0 ,对于从头创建的文档,y=0。

    关于iText横向和定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274618/

    相关文章:

    java - 文本 : set zoom level of external hyper link in pdf

    java - 如何使用 iText 在 pdf 最后一页添加图像?

    iTextPDF 库 - 找不到类 "com.itextpdf.text.pdf.PdfAWriter"

    java - 使用 itext 4 编辑 pdf 中的现有超链接

    c# itextsharp PDF 创建在每页上带有水印

    c# - 当我尝试压缩不同级别的 pdf 文件时,ITextSharp 返回相同大小的 pdf

    java - 嵌入式图像在 Flying Saucer 中的 pdf 页面之间被破坏

    java - 将 JSP 页面打开为 PDF 文件

    c# - 如何在运行时替换 HTML 的占位符值并使用 iTextSharp 生成 PDF?

    java - html View 中的 iText 等宽字体,带有 css 样式的粗体、斜体