Как использовать Itext7 в PowerShell V5, Исключение при загрузке pdfWriter - PullRequest
0 голосов
/ 30 апреля 2019

До того, как я создал скрипт powershell с iText7, я создал с новым приложением класса iText7 C #.Это работает без проблем.

Теперь я преобразовал его в скрипт Poweshell и получил ошибку.

с iTextsharp все работает хорошо, но Itextsharp - это EOL, поэтому iText7 - рекомендуемый способ.

Что не так с моим кодом?

[string] $pdfDocuFilename = "C:\pdfTestProject1\Exports\export_" + (Get-Date -Format "yyyyMMdd_HHmmss") + ".pdf"

Add-Type -Path "C:\pdfTestProject1\dlls\BouncyCastle.Crypto.dll"
Add-Type -Path "C:\pdfTestProject1\dlls\itext.kernel.dll"
Add-Type -Path "C:\pdfTestProject1\dlls\itext.layout.dll"
Add-Type -Path "C:\pdfTestProject1\dlls\itext.io.dll"
Add-Type -Path "C:\pdfTestProject1\dlls\NLog.dll"


$pdfWriter = [iText.Kernel.Pdf.PdfWriter]::new($pdfDocuFilename)
$pdf = [iText.Kernel.Pdf.PdfDocument]::new($pdfWriter)

Исключение:

Исключение вызывает ".ctor" с аргументом "1": "Не удается открыть документ«.В C: \ pdfTestProject1 \ printPDF.ps1: 26 char: 1 + $ pdf = [iText.Kernel.Pdf.PdfDocument] :: new ($ pdfWriter) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Категория: Информация: NotSpecified: (:) [],MethodInvocationException + FullyQualifiedErrorId: PdfException

Мой желаемый результат:

Единственное, чего хочет человек, - это рабочий код: -)

спасибо!

1 Ответ

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

Проблема в том, что пара зависимостей отсутствует.iText7 зависит от Common.Logging версии 3.4.1 (можно загрузить здесь ), которая в свою очередь зависит от Common.Logging.Core, той же версии 3.4.1 (можно загрузить здесь ).Также убедитесь, что зависимость BouncyCastle Portable.BouncyCastle версия 1.8.1.3 (можно загрузить здесь ).

Вам не нужна зависимость NLog, по крайней мере, она не нужна дляiText 7 для работы.

Как говорится, вот фрагмент кода, который отлично работал в моей установке (iText 7.1.6, PowerShell 5.1):

[string] $pdfDocuFilename = "C:\temp\" + (Get-Date -Format "yyyyMMdd_HHmmss") + ".pdf"

Add-Type -Path "C:\temp\Common.Logging.Core.dll"
Add-Type -Path "C:\temp\Common.Logging.dll"
Add-Type -Path "C:\temp\itext.io.dll"
Add-Type -Path "C:\temp\itext.kernel.dll"
Add-Type -Path "C:\temp\BouncyCastle.Crypto.dll"


$pdfWriter = [iText.Kernel.Pdf.PdfWriter]::new($pdfDocuFilename)
$pdf = [iText.Kernel.Pdf.PdfDocument]::new($pdfWriter)
$pdf.AddNewPage()
$pdf.Close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...