Как я печатаю документ HTML от веб-сервиса?

Причины, почему селекторы на основе id не работают

  1. Элемент / DOM с указанным идентификатором еще не существует.
  2. Элемент существует, но он не является зарегистрированный в DOM [в случае, если HTML-узлы динамически добавляются из ответов Ajax].
  3. Присутствует более одного элемента с тем же идентификатором, который вызывает конфликт.

Решения

  1. Попробуйте получить доступ к элементу после его объявления или, альтернативно, использовать такие вещи, как $(document).ready();
  2. . Для элементов, исходящих из ответов Ajax, используйте метод .bind() для jQuery. В старых версиях jQuery для этого было .live().
  3. Используйте инструменты [например, плагин webdeveloper для браузеров], чтобы найти дубликаты идентификаторов и удалить их.
76
задан H. Pauwelyn 13 December 2018 в 17:30
поделиться

6 ответов

Можно распечатать из командной строки с помощью следующего:

rundll32.exe %WINDIR %\System32\mshtml.dll, PrintHTML "%1"

, Где %1 путь к файлу файла HTML, который будет распечатан.

, Если Вы не должны печатать из памяти (или может позволить себе записать в диск во временном файле) можно использовать:

using (Process printProcess = new Process())
{
    string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
    printProcess.StartInfo.FileName = systemPath + @"\rundll32.exe";
    printProcess.StartInfo.Arguments = systemPath + @"\mshtml.dll,PrintHTML """ + fileToPrint + @"""";
    printProcess.Start();
}

N.B. Это только работает над Windows 2000, и выше я думаю.

32
ответ дан ICR 24 November 2019 в 11:23
поделиться

Я знаю, что сама Visual Studio (по крайней мере, в 2003 версия) ссылается на IE dll непосредственно для рендеринга "Режима конструктора".

может стоить изучить это.

Иначе, я ни о чем не могу думать вне управления веб-браузером.

5
ответ дан EndangeredMassa 24 November 2019 в 11:23
поделиться

Я не знаю определенные инструменты, но существуют некоторые утилиты, которые записывают / щелчки воспроизведения. Другими словами, Вы могли автоматизировать "щелчок" по диалоговому окну печати. (Я знаю, что это - взлом, но когда все остальное перестало работать...)

-1
ответ дан Greg Ogle 24 November 2019 в 11:23
поделиться

Я оснащаю, который работает очень хорошо на меня, HiQPdf. https://www.hiqpdf.com /

цена разумна (запускается на уровне 245$), и это может представить HTML к PDF и также справиться с печатью файлов PDF непосредственно.

0
ответ дан 24 November 2019 в 11:23
поделиться

Может это поможет. http://www.codeproject.com/KB/printing/printhml.aspx Также не уверен, из какого потока вы пытаетесь получить доступ к элементу управления браузера, но это должен быть STA

. Примечание. Проект, указанный в ссылке, действительно позволяет вам перейти на страницу и выполнить печать без отображения диалогового окна печати. .

0
ответ дан 24 November 2019 в 11:23
поделиться

Если у вас есть бюджет (~ 3000 долларов), посмотрите PrinceXML .

Он преобразует HTML в PDF, хорошо работает в служебной среде и поддерживает расширенные функции, такие как отсутствие разрыва страницы в середине ячейки таблицы (что в настоящее время не поддерживается многими браузерами).

3
ответ дан 24 November 2019 в 11:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: