Это немного особенный:
Я загружаю HTML-код в строковой форме в элемент управления WebBrowser через свойство DocumentText.
Теперь, когда я распечатываю страницу с помощью PDF-принтера (в моем случае, Bullzip PDF Printer), он всегда принимает URL-адрес в качестве имени документа, которое имеет вид «about: blank» .
Есть ли способ изменить это значение на другое, либо изменив свойство URL (оно доступно только для чтения), либо изменив поведение печати, чтобы использовать другой текст, а не URL-адрес в качестве имени файла?





Вы можете изменить верхний и нижний колонтитулы, чтобы свойство URL не печаталось.
Попробуйте использовать Navigate по URL-адресу, затем отмените это через DWebBrowserEvents::BeforeNavigate.
Я пробовал это, но это не сработало: с помощью C# я перешел к URL-адресу, а затем в событии .._ Navigating я отменил навигацию, но свойство URL-адреса все еще оставлено "null" и поэтому "about: blank" все еще используется.
Есть несколько вариантов, о которых я знаю, хотя мои знания по этому вопросу немного устарели.
Первый - изменить настройки компьютера в свойствах обозревателя. Независимо от того, выполняется ли это вручную или с помощью сценария изменения реестра, это просто для разработчика, но, очевидно, не лучший подход с точки зрения развертывания или совместимости.
Следующий подход - разработать собственный шаблон печати. Это не весело, но, наверное, самый профессиональный подход. Как бы я ни хотел включить в этот пост всю информацию, необходимую для этого подхода, это слишком много, чтобы охватить его. Вот хороший обзор и удачи в поисковике оттуда.
Мой опыт работы с этим включал печать из компонента MS WebControl, используемого в приложении .NET 1.1 Winforms, в компонент конвертера Web Super Goo PDF. Ваш пробег может отличаться.
Проблема не в печати URL-адреса, а в том, что URL-адрес используется в качестве имени документа (пример: stackoverflow.com.pdf)