2017-04-06 1 views
0

Je suis en train de convertir html en un document pdf dans les mots d'aspose pour Java. (La version est 17.4.0)Définir PageSize lors de la conversion de HTML en PDF

Ma question est: Comment puis-je définir la taille de la page et les marges de la page en html?

Dans le documentation, il semble que je dois définir la largeur, la hauteur et la marge pour la section (div-élément).

Mon html ressemble à ceci:

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Hello PDF</title> 
 
</head> 
 

 
<body> 
 
    <div class="page" style="width:210mm; height:297mm; margin-top:0cm; margin-bottom:1cm; margin-left:1cm; margin-right:1cm;"> 
 
     <p>Hello World</p> 
 
    </div> 
 
</body> 
 

 
</html>

Mon code java:

String baseUri = "path/to/doc/"; 

LoadOptions loadOptions = new LoadOptions(); 
loadOptions.setEncoding(Charset.forName("UTF-8")); 
Document doc = new Document(baseUri + "test.html", loadOptions); 

OutputStream outputStream = new FileOutputStream(baseUri + "test.pdf"); 
doc.save(outputStream, SaveFormat.PDF); 

Mon problème est que le pdf résultant a une taille de page de 215,9 x 279,4 mm (au lieu de 210 x 297 mm) et la marge du haut n'est pas non plus 0.

Quelqu'un peut-il me dire comment définir ces valeurs dans mon code HTML?

Répondre

1

Veuillez noter que Aspose.Words imite le même comportement que MS Word. Vos paramètres de page sont bien en HTML. Si vous chargez le fichier HTML d'entrée dans MS Word et le convertissez en PDF, il génèrera également du document avec une taille de page de 215,9 x 279,4 mm. Toutefois, vous pouvez modifier le paramètre de mise en page de la section en fonction de vos besoins en utilisant l'API Aspose.Words comme indiqué ci-après. Je suis Tilal, développeur évangéliste chez Aspose.

String baseUri = "path/to/doc/"; 

LoadOptions loadOptions = new LoadOptions(); 
loadOptions.setEncoding(Charset.forName("UTF-8")); 
com.aspose.words.Document doc = new com.aspose.words.Document(baseUri +"test.html", loadOptions); 

for (Section sectoin : doc.getSections()) 
{ 
     PageSetup ps = sectoin.getPageSetup(); 
     ps.setPaperSize(PaperSize.A4); 
     ps.setTopMargin(0.0); 
     ps.setBottomMargin(1.0); 
     ps.setLeftMargin(1.0); 
     ps.setRightMargin(1.0); 

} 

OutputStream outputStream = new FileOutputStream(baseUri +"Test.pdf"); 
doc.save(outputStream, com.aspose.words.SaveFormat.PDF); 
+0

Merci pour votre réponse. Si je vous utilise le code le document semble correct. Mon espoir était, que je peux placer toutes les configurations nécessaires dans mon html. –

+0

Oui, la définition des propriétés de mise en page en HTML n'aura aucune incidence sur les résultats de conversion HTML vers PDF. –