2012-06-07 25 views
11

Czy można kontrolować ustawienie DPI używane podczas rasteryzacji obrazu treści WWW przy użyciu metody page.render(filename)?Sterowanie DPI obrazu wyjściowego przy użyciu renderowania()

Nie mogę znaleźć niczego, co kontrolowałoby to przez the interface api, ale nie wiedziałem, czy ktoś już wymyślił sposób, aby to zrobić.

Nasza firma-sprawa wygląda następująco:

zawartość niestandardowych HTML tworzony za pośrednictwem aplikacji internetowej jest dostarczany do naszych rasterize.js proces phantom i zapytaliśmy dla konkretnego znacznika, aby ustawić prostokąta klienta. Ten prostokąt klienta jest renderowany do pliku PNG kodu HTML, który może zostać użyty jako obraz w innym miejscu.

Chcemy, aby rozdzielczość wynikowego pliku PNG była większa niż domyślna, z powodu aliasingu tekstu o niektórych dziwnych rozmiarach czcionek/pogrubionych kombinacjach.

+0

Rozdzielczość nagranego w PNG jest powszechnie ignorowane podczas wyświetlania go. Czy to wygląda OK, gdy otworzysz go w edytorze? –

+2

nie, i to jest problem. Są one zawarte PNG wewnątrz pliku PDF, który rzekomo zachowuje rozdzielczość i tworzy "trudny do odczytania tekst". –

+0

Ach, znalazłeś jedyną sytuację, w której rozdzielczość nie jest ignorowana. Prawdopodobnie chcesz rozdzielczość 96. –

Odpowiedz

2

Mogę mieszać DPI z czymś innym, ale czy zaglądasz do opcji zoomFactor? Ustawienie na obiekcie strony spowoduje powiększenie renderowanego obrazu.

0

Ten widelec umożliwia ustawienie DPI https://github.com/martonw/phantomjs/tree/issue-%2313553

Można ustawić wtedy dpi z page.dpi = 72

console.log('Loading a web page'); 
var page = require('webpage').create(); 
var url = 'http://phantomjs.org/'; 
page.open(url, function (status) { 
    //Page is loaded! 
    page.dpi=300; // this is where you actually set the DPI 
    page.render("test.pdf"); 
    phantom.exit(); 
}); 
Powiązane problemy