当前位置: 首页 > 知识库问答 >
问题:

在现有的PDF中用横向模式写一些东西 使用 itextsharp .net mvc?

单耘豪
2023-03-14

我想在现有的pdf中写点东西。我迄今为止所做的=

public void certificate()
{
    //get user info using UserId from database
    //UserDetail UserDetail = db.UserDetails.Where(x => x.UserId == UserId).FirstOrDefault();
    string oldFile = Server.MapPath("~/Content/img/tsms/Certificate/Certificate-of-Completion-Award-Template-Blue.pdf");
    string newFile = Server.MapPath("~/Content/img/tsms/Certificate/newFile.pdf");

    // open the reader
    PdfReader reader = new PdfReader(oldFile);
    Document document = new Document(new Rectangle(288f, 144f), 10, 10, 10, 10);
    document.SetPageSize(PageSize.A4);

    // open the writer
    FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
    PdfWriter writer = PdfWriter.GetInstance(document, fs);
    document.Open();

    // the pdf content
    PdfContentByte cb = writer.DirectContent;

    // select the font properties
    BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
    cb.SetColorFill(BaseColor.DARK_GRAY);
    cb.SetFontAndSize(bf, 8);

    // write the text in the pdf content
    cb.BeginText();
    string text = "Some random blablablabla...";
    // put the alignment and coordinates here
    cb.ShowTextAligned(1, text, 520, 640, 0);
    cb.EndText();

    // write the text in the pdf content
    cb.BeginText();
    text = "Other random blabla...";
    // put the alignment and coordinates here
    cb.ShowTextAligned(2, text, 100, 200, 0);
    cb.EndText();

    // create the new page and add it to the pdf
    PdfImportedPage page = writer.GetImportedPage(reader, 1);
    cb.AddTemplate(page, 0, 0);

    // close the streams and voilá the file should be changed :)
    document.Close();
    fs.Close();
    writer.Close();
    reader.Close();
}

这是工作。我的问题是:我提供的文档< code>old document处于横向模式。我希望新文档为横向模式。但这为我提供了纵向模式的pdf。所以我试着.....

更新1=

document.SetPageSize(PageSize.A4.Rotate());

这也不起作用。。

此外,新的文字,我正在添加到旧的pdf格式,显示在旧的网页下...

共有1个答案

樊飞飙
2023-03-14

对于您的另一个问题“从旧的pdf创建新的pdf itextsharp。net MVC”我解释了为什么页面会旋转,以及如何消除这种现象。

但是,在这里,很明显您的任务是填写该证书。此任务不应通过PdfReader/PdfWriter对(用于创建一个新文档,其中包含来自其他文档的一页或两页的副本)来实现,而是通过PdfReader/PdfStamper对(用于操作现有PDF,例如表单填充)来实现。

使用这种技术,你的代码可能看起来像这样:

using (PdfReader reader = new PdfReader(oldFile))
using (FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
using (PdfStamper stamper = new PdfStamper(reader, fs))
{
    PdfContentByte cb = stamper.GetOverContent(1);

    BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
    cb.SetColorFill(BaseColor.DARK_GRAY);
    cb.SetFontAndSize(bf, 8);

    // write the text in the pdf content
    cb.BeginText();
    string text = "Some random blablablabla...";
    // put the alignment and coordinates here
    cb.ShowTextAligned(1, text, 640, 520, 0);
    cb.EndText();

    // write the text in the pdf content
    cb.BeginText();
    text = "Other random blabla...";
    // put the alignment and coordinates here
    cb.ShowTextAligned(2, text, 100, 200, 0);
    cb.EndText();
}

导致

 类似资料:
  • 问题内容: 我试图在横向模式下仅强制应用程序中的一个视图, 该视图以纵向模式启动,并且在更改设备方向时保持旋转。 从不调用shouldAutorotate。 任何帮助,将不胜感激。 问题答案: 它对其他人可能有用,我找到了一种强制视图以横向模式启动的方法: 把它放在viewDidLoad()中: 和,

  • 我试图在横向模式下强制应用程序中只有一个视图,我调用: 视图以纵向模式启动,并在更改设备方向时保持旋转。永远不会调用shouldAutorotate()方法。 任何帮助都将不胜感激。

  • 我完成了我的iOS应用程序,但我只需要将一个视图设置为横向模式,其余的视图只能在竖屏中看到。 我使用的是Xcode 5.1,我通过从右侧面板中插入情节提要视图控制器创建了所有视图,因此如果您要告诉我在什么地方编写代码,请确切告诉我需要在哪里编写。 我在这里读到了一个解决方案UINavigationController强制旋转,但我不知道该在哪里编写代码。是否需要手动创建一个UIViewContro

  • 我们计划通过传递html文本作为输入,在横向模式下生成一个pdf。此外,pdf是在横向模式下生成的,而内容是在纵向模式下。以下是我们用来执行上述要求的步骤。 1)从源系统接收xml内容。 2) 使用xsl从xml生成html输出。 3)将html输出作为输入传递给pdf java类,然后该类将以横向模式生成pdf。 示例 xml 文件:.com/重置样本 样本xsl文件:.com/重置复制 jav

  • 我有下面给我的html,当我把这个转换成PDF使用飞碟,它不适合A4的肖像大小。如何生成横向pdf文件。 我使用下面给定的代码将html转换为pdf

  • 问题内容: 我试图对我的应用程序强制使用“横向”模式,因为我的应用程序绝对不是针对“人像”模式设计的。我怎样才能做到这一点? 问题答案: 现在可以使用HTML5 Webapp清单。 见下文。 原始答案: 您不能将网站或Web应用程序锁定在特定方向。它违反了设备的自然行为。 您可以使用CSS3媒体查询来 检测 设备方向,如下所示: 或通过绑定JavaScript方向更改事件,如下所示: 2014年1