Опитвам се да конвертирам html файл в PDF чрез PhantomJS и не мога да разбера как да избегна проблемите с мащабирането на dpi. Просто имайки толкова прост елемент като <div style=" display:block; background-color:red; width:96px; "> text </div>
Ширината му е намалена до 77px. Стойностите на моите viewPort
или paperSize
изглежда не променят това. Мога да коригирам zoomFactor
на 1,25, което беше предложено другаде, това се мащабира приблизително до предвидената ширина, но обърква някои елементи в страницата.
Имам svg диаграма, генерирана от HighCharts, която е настроена да запълва 100% ширина, опитах също width: 210mm
, но това ще бъде намалено, вместо да съответства на ширина на paperSize от 210 mm. Знам, че A4 при 96dpi трябва да бъде 794px x 1120px, а чрез програмата за преглед на PDF при 100% увеличение това са измерванията в px (доколкото разбирам PDF файловете в Windows се показват при 96dpi). Успях да накарам своя div HighCharts с width:100%
да се изобрази по предназначение, съответствайки на ширината на PDF файловете, като взех тези размери на px и умножих по 1,25, 992 x 1400 стойности за viewPort
с paperSize
, зададен на A4 портрет и без поле. За съжаление това не коригира останалата част от съдържанието, което се намалява.
Една друга опция беше да се избегне размерът на хартията A4 и да се осигурят същите стойности на px като viewPort, те също са намалени за съответстващ документ, въпреки че това беше предназначено за услуга за отчитане, където се очакваше A4 PDF... Тъй като нищо от съдържанието не е растерно въз основа на това има ли начин да повиша мащаба на това, за да запълня/побера размерите на A4 PDF? В идеалния случай браузърът и pdf версиите ще изглеждат сходни по размер визуално на една и съща машина (PhantomJS се използва чрез приложението Atom-Shell), може би това не е последователно изживяване, което може да се предостави на потребителите?