Программная печать PDF-файла в PDF без PrinterDialog - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю над проектом, в котором я хотел бы автоматически сжимать PDF-документ с помощью Microsoft «Печать в PDF» (в Windows 10).Несмотря на то, что я успешно использовал сторонние инструменты, один из самых важных документов PDF, который обычно сокращается, содержит расширения, которые не позволяют ему работать должным образом с помощью PDFium (хром?).Таким образом, я пытаюсь сделать это без сторонней библиотеки.

У меня был умеренный успех несколькими разными способами, но самый «простой» - несколько предостережений.

Этот код позволяет мне открывать PDF в Adobe Reader, запускать процесс печати и отображать диалоговое окно печати, где пользователи могут назвать и сохранить свой файл.Однако, если возможно, я бы хотел сделать это полностью без диалогового окна печати, поскольку у меня уже есть стандартизированное соглашение об именах, и я не хочу, чтобы пользователю приходилось взаимодействовать с диалоговым окном для каждого из нескольких конвертируемых файлов.

    Sub printme() handles button1.click
    Dim info = New ProcessStartInfo("C:\Users\[username]\Desktop\se4118.pdf")
    Dim p As Process

    'Set process setting to be hidden
    info.Verb = "print"
    info.CreateNoWindow = True
    info.WindowStyle = ProcessWindowStyle.Hidden
    info.Arguments = "Microsoft Print To PDF"

    'Start hidden process
    p = New Process()
    p.StartInfo = info
    p.Start()
    end sub

Я пытался передать несколько аргументов в "info.Arguments", но безуспешно.Кто-нибудь имеет какие-либо идеи, как начать эту печать, используя предопределенную схему имен без отображения диалогового окна печати?Если это невозможно, не могли бы вы порекомендовать другой способ печати PDF в PDF (с использованием Adobe в качестве носителя или нет)?Спасибо за вашу помощь.

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