Водяной знак с Powershell и iTextSharp - PullRequest
0 голосов
/ 03 мая 2019

Есть ли способ пометить PDF в PowerShell через iTextSharp?Я видел его версию на C #, но не знаю, как перевести ее в PowerShell

Ниже приведена версия C #

PdfReader PDFReader = new PdfReader("C:\\file.pdf");

FileStream Stream = new FileStream("C:\\new.pdf", FileMode.Create, FileAccess.Write);

PdfStamper PDFStamper = new PdfStamper(PDFReader, Stream);

for (int iCount = 0; iCount < PDFStamper.Reader.NumberOfPages; iCount++)
{
    PdfContentByte PDFData = PDFStamper.GetOverContent(iCount + 1);
    BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
    PDFData.BeginText();
    PDFData.SetColorFill(CMYKColor.LIGHT_GRAY);
    PDFData.SetFontAndSize(baseFont, 80);
    PDFData.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "SAMPLE DOCUMENT", 300, 400, 45);
    PDFData.EndText();
}

Stream.Close();
PDFReader.Close();
PDFStamper.Close();

1 Ответ

0 голосов
/ 03 мая 2019

Вы можете просто импортировать dll с надстройкой или отражением.Остальная часть этого кода переносится довольно легко.

[System.Reflection.Assembly]::LoadFile('C:\temp\itextsharp.dll')
$pdfReader = [iTextSharp.text.pdf.PdfReader]::new('C:\temp\testInput.pdf')
$stream = [System.IO.FileStream]::new('C:\temp\testOutput.pdf', [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write)
$pdfStamper = [iTextSharp.text.pdf.PdfStamper]::new($pdfReader, $stream)

for($i = 0; $i -lt $pdfStamper.Reader.NumberOfPages; $i++)
{
    $pdfData = $pdfStamper.GetOverContent($i+1)
    $baseFont = [iTextSharp.text.pdf.BaseFont]::CreateFont([iTextSharp.text.pdf.BaseFont]::HELVETICA, [iTextSharp.text.pdf.BaseFont]::WINANSI, [iTextSharp.text.pdf.BaseFont]::EMBEDDED)
    $pdfData.BeginText();
    $pdfData.SetColorFill([iTextSharp.text.pdf.CMYKColor]::LIGHT_GRAY)
    $pdfData.SetFontAndSize($baseFont, 80)
    $pdfData.ShowTextAligned([iTextSharp.text.pdf.PdfContentByte]::ALIGN_CENTER, "Sample Document", 300, 400, 45)
    $pdfData.EndText();
}

$pdfStamper.Close()
$stream.Close()
$pdfReader.Close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...