Еще одно открытие: если вы используете браузер SWT для отображения PDF, не используйте setText, иначе hostContainer не определен. Вы должны использовать setURL (т.е. поместить текст во временный файл).

раиваю документ PDF в мой HTML-код. Для этого я написал этот код.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org

/TR/html4/loose.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
</head>
<body>
<object height="100%" width="100%" type="application/pdf" data="yii.pdf#toolbar=1&amp;navpanes=0&amp;scrollbar=1&amp;page=1&amp;view=FitH">

<p>It appears you don't have a PDF plugin for this browser. No biggie... you can <a href="/pdf/sample.pdf">click here to download the PDF file.</a></p>

</object>

</body>
</html>

Но результат - пустая страница на FF4, и IE9 встраивает pdf файл, но его контейнер очень мал - почти 30% страницы. если я удаляю первую строку, т.е. DOCTYPE, оба браузера отображают PDF-файл, как и должно быть. Следующий код работает нормально.

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
</head>
<body>
<object height="100%" width="100%" type="application/pdf" data="yii.pdf#toolbar=1&amp;navpanes=0&amp;scrollbar=1&amp;page=1&amp;view=FitH">

<p>It appears you don't have a PDF plugin for this browser. No biggie... you can <a href="/pdf/sample.pdf">click here to download the PDF file.</a></p>

</object>

</body>
</html>

Я хочу использовать doctype на своей странице, чтобы другие страницы работали нормально. Есть ли способ исправить первый код, который содержит тип документа?

Ответы на вопрос(3)

используя embed, object или iframe. К сожалению, использование iframe не позволит использовать Adobe Javascriptвнутри PDF отправлять сообщения в JS в HTML, потому что hostContainer не определен. Поэтому я вынужден использовать embed или object. к счастьюthirtydotКод стиля также отлично работает для объекта. Вот мой рабочий код ...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Preview</title>
<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
    border: 0;
    height: 100%;
    overflow: hidden;
}
object {
    width: 100%;
    height: 100%;
    border: 0
}
</style>
<script language="javascript">
    function handleMessage(msg) {
      alert('got message '+msg);
    }
    function setupHandler() {
      document.getElementById("myPdf").messageHandler = { onMessage: handleMessage };
    }
</script>
</head>
<body onLoad="setupHandler();">
<object id="myPdf" type="application/pdf" data="file_with_actions.pdf">
Unable to open the PDF file.
</object>
</body>
</html>

Вы можете прочитать больше о материалах JavascriptВот.

 John Henckel01 окт. 2013 г., 23:13
Еще одно открытие: если вы используете браузер SWT для отображения PDF, не используйте setText, иначе hostContainer не определен. Вы должны использовать setURL (т.е. поместить текст во временный файл).
Решение Вопроса

<iframe> элемент.
Если нет, возможно, преобразовать его во флэш-память, а затем встроить вспышку.

Также попробуйте<!doctype html> и посмотреть, что он делает, это стандартный тип документа для HTML5

 Josh Habdas12 нояб. 2017 г., 15:29
Проголосовал 6 лет спустя, потому чтоiframe кажется, это еще путь.

но с рабочим (проверенным в бою) кодом:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Preview</title>
<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
    border: 0;

    height: 100%;
    overflow: hidden;
}
iframe {
    width: 100%;
    height: 100%;
    border: 0
}
</style>
</head>

<body>

<iframe src=""></iframe>

</body>
</html>
 John Henckel27 сент. 2013 г., 16:35
Спасибо! работает отлично, именно то, что мне нужно.

Ваш ответ на вопрос