Печкин в Втепечкин
Для проекта мы переходим на Windows Azure. Я должен убедиться, что конвертер HTML в PDF будет работать на 64-битной рабочей роли.
Так как Печкин не может работать как 64-битное приложение, я решил использовать Втепечкина, потому что они должны быть очень похожими, и оба используют wkhtmltopdf для преобразования HTML в PDF.
Теперь я все это настроил, но полученный PDF разочаровывает.
Проблемы:
Шрифт отображается по-разному. С Печкиным шрифт всегда "острый", где tuespechkin делает его очень жирным. Результаты здесь: http://postimg.org/image/xngqxryn1/
- Я пытался использовать разные шрифты (даже браузер по умолчанию). Все сделать очень жирным
- Я пытался использовать разные объектные и глобальные настройки (DPI, Outline, сжатие, назовите его; он никогда не меняется сильно).
Все содержимое выбирается и копируется. Я хотел бы, чтобы это было больше похоже на изображение (которое по умолчанию в Печкин). Любые советы по этому вопросу будут оценены.
Вот код, который я использую для преобразования HTML в PDF:
Печкин, старый:
var documentConfig = new ObjectConfig()
.SetAllowLocalContent(true)
.SetLoadImages(true)
.SetRunJavascript(true)
.SetPrintBackground(true)
.SetRenderDelay(15000);
var globalConfig = new GlobalConfig()
.SetMargins(new Margins(50, 50, 100, 100))
.SetDocumentTitle(company.Name)
.SetPaperSize(PaperKind.A4);
var pechkin = new SynchronizedPechkin(globalConfig);
var buffer = pechkin.Convert(documentConfig, parsedHtml);
Tuespechkin:
var converter = new ThreadSafeConverter(
//new ImageToolset(
new PdfToolset(
new Win64EmbeddedDeployment(
new TempFolderDeployment()
)
)
);
var documentConfig = new ObjectSettings {
WebSettings = new WebSettings {
EnableJavascript = true,
PrintBackground = true,
PrintMediaType = true
},
LoadSettings = new LoadSettings {
BlockLocalFileAccess = false,
RenderDelay = 15000,
},
HtmlText = parsedHtml
};
var globalConfig = new GlobalSettings();
globalConfig.Margins = new MarginSettings(2.645833333333, 1.322916666667, 2.645833333333, 1.322916666667);
globalConfig.Margins.Unit = Unit.Centimeters;
globalConfig.DocumentTitle = company.Name;
globalConfig.PaperSize = PaperKind.A4;
globalConfig.UseCompression = false;
globalConfig.DPI = 1200;
var doc = new HtmlToPdfDocument {
Objects = {
documentConfig
},
GlobalSettings = globalConfig
};
var buffer = converter.Convert(doc);
Любая помощь по любой проблеме будет высоко ценится!
1 ответ
Как вы говорите, я не могу решить проблему. Но IIS можно настроить для запуска 32-разрядных приложений. как это фото:
Таким образом, вы можете запустить Печкин в вашем лазурном. Вы можете увидеть больше в этом. https://codeutil.wordpress.com/2013/09/16/convert-html-to-pdf/