Я пытаюсь использовать HTML / CSS для создания формы, которая затем будет преобразована в PDF.
Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы вывод был ровно 8 дюймов в ширину.Результат, который я получаю, составляет примерно 5,125 дюйма в ширину.
Сначала я попробовал это с помощью Select.PDF.Когда я не мог заставить его работать правильно, я искал другой вариант и нашел HiQPDF.Оба они генерируют одинаковый уменьшенный вывод.
Поскольку оба продукта дают мне одинаковый результат, это заставляет меня думать, что я что-то сделал неправильно.Однако если я открою HTML-код в Chrome и распечатаю его в PDF-формате, я получу ожидаемые результаты.
Вот HTML / CSS.Размеры измеряются в точках, принимая стандартные 72 точки на дюйм.Я также попытался выполнить измерения в дюймах.
<html>
<head>
<style>
body {
background-color: white;
width: 576pt;
}
div {
background-color: transparent;
padding: 0;
margin: 0;
border: 0;
border-style: solid;
border-color: #231f20;
color: #231f20;
}
#buyer {
border-width: 1.5pt .5pt .5pt 1.5pt;
width: 332pt;
min-height: 18pt;
clear: left;
float: left;
}
#buyerLabel {
color: #231f20;
font-family: Verdana, Geneva, sans-serif;
font-size: 6pt;
position: relative;
left: 4pt;
top: 2pt;
}
#buyerData {
color: black;
font-family: "Times New Roman", Times, serif;
font-size: 14pt;
position: relative;
left: 37pt;
top: 0;
}
#phone {
border-width: 1.5pt .5pt .5pt .5pt;
width: 143pt;
min-height: 18pt;
float: left;
}
#phoneLabel {
font-family: Verdana, Geneva, sans-serif;
font-size: 6pt;
position: relative;
left: 4pt;
top: 2pt;
}
#phoneData {
color: black;
font-family: "Times New Roman", Times, serif;
font-size: 14pt;
position: relative;
left: 37pt;
top: 0;
}
#date {
border-width: 1.5pt 1.5pt .5pt .5pt;
width: 96pt;
min-height: 18pt;
float: left;
clear: right;
}
#dateLabel {
font-family: Verdana, Geneva, sans-serif;
font-size: 6pt;
position: relative;
left: 4pt;
top: 2pt;
}
#dateData {
color: black;
font-family: "Times New Roman", Times, serif;
font-size: 14pt;
position: relative;
left: 37pt;
top: 0;
}
</style>
</head>
<body>
<div id=buyer>
<div id=buyerLabel>BUYER(S)</div>
<div id=buyerData>Roger Rabbit</div>
</div>
<div id=phone>
<div id=phoneLabel>PHONE</div>
<div id=phoneData>(606) 555-5555</div>
</div>
<div id=date>
<div id=dateLabel>DATE</div>
<div id=dateData>2/28/2019</div>
</div>
</body>
</html>
Это пример кода C #, который я использую для его обработки.В этом примере я использую Select.PDF.Изначально я не устанавливал никаких параметров, кроме размера страницы.Позже я добавил другие, надеясь, что они могут решить проблему.
HtmlToPdf converter = new HtmlToPdf();
converter.Options.PdfPageSize = PdfPageSize.Letter;
converter.Options.MarginLeft = 0;
converter.Options.MarginRight = 0;
converter.Options.AutoFitWidth = HtmlToPdfPageFitMode.AutoFit;
converter.Options.CssMediaType = HtmlToPdfCssMediaType.Print;
var html = Encoding.UTF8.GetString(File.ReadAllBytes("Sample.html"));
PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save("Sample.pdf");