toute tentative d'utiliser le mode paginé des médias, avec par exemple une feuille de style contenant:Mode média paginé CSS3: Un moyen d'empêcher l'insertion du logo @top_right pdfreactor?
<html><header>...<style type="text/css"> ...
body { counter-reset: chapter 1;
counter-reset: section 1;
counter-reset: page 1;
margin-left: +2%;
margin-right: -2%;
font-size: 10pt;
}
@page { size : a4 ;
margin: 8%;
@top-left { content: "abbrv"; ; font-size: 8pt;}
@top-center { content: "Chapter " counter(chapter) " : " counter(section); font-size: 8pt;}
@top-right { content: "$date : $initials"; ; font-size: 8pt; }
@bottom-center { content: "Page " counter(page) "/" counter(pages); font-size: 8pt; }
}
div.chapter {
break-before : always;
counter-increment: chapter;
counter-reset: section;
}
section.section {
counter-increment: section;
}
</style></header><body>
<div id="chap1" class="chapter"><h1>Chapter 1</h1></div>
...</body></html>
Notez le ne contient pas au-dessus de toute référence à des images incorporées, mais lorsqu'il est exécuté par PDFreactor le PDF résultant contient une petite rond graphique radio-actif avec le mot "PDF" superposé sur le dessus, dans le contenu en haut à droite, après mon "$ date: $ initiales" contenu.
Je pense que c'est "pdfreactor.svg"?
Alors n'est-il pas possible d'enlever le logo?
Déplacer tous les fichiers nommés PDFreactor .svg dans le répertoire d'installation PDFreactor/ à d'autres endroits n'a pas aidé.
J'utilise la licence gratuite pour un usage personnel et non commercial que j'ai obtenue par courriel de Real Objects, et non la licence d'évaluation.
Est-ce que les utilisateurs personnels non-commerciaux ne sont pas autorisés à désactiver l'inclusion de ce logo dans le bloc d'en-tête de page? Est-ce que quelqu'un a réussi à désactiver l'inclusion de l'image du logo? Si oui, comment?
Aussi, est-ce que quelqu'un sait pourquoi les compteurs de section de chapitre & sont toujours affichés comme 0 dans l'en-tête de page du document ci-dessus?
Java J'utilise est:
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.realobjects.pdfreactor.Configuration;
import com.realobjects.pdfreactor.PDFreactor;
import com.realobjects.pdfreactor.Result;
import com.realobjects.pdfreactor.Log;
import com.realobjects.pdfreactor.Record;
import com.realobjects.pdfreactor.events.DefaultHandler;
class PDFReactor
{
public static void main(String args[])
{ File html_in = null , pdf_outf=null;
String html_in_url = null;
FileOutputStream pdf_out=null;
boolean expect_in=false , expect_out=false;
Logger logger = null;
try {
logger = Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
logger.setLevel(Level.INFO);
logger.addHandler(new DefaultHandler());
}catch(Exception e)
{ System.err.println("Failed to get logger: " + e.toString());
}
for (String arg : args)
{ switch(arg)
{ case "-f" :
expect_in=true;
break;
case "-o" :
expect_out=true;
break;
default:
if(expect_in)
{ expect_in = false;
try {
html_in = new File(arg);
html_in_url = html_in.toURI().toURL().toString();
} catch (Exception e)
{ System.err.println("new File (" + html_in + ") failed : "+e.toString());
}
}else
if(expect_out)
{ expect_out = false;
try {
pdf_outf = new File(arg);
pdf_out = new FileOutputStream(pdf_outf);
} catch (Exception e)
{ System.err.println("new File (" + pdf_out + ") failed : "+e.toString());
}
}
}
}
if((html_in != null) && (pdf_out != null) && (logger != null))
{
try
{ PDFreactor r = new PDFreactor();
if(r != null)
{ Configuration configuration = new Configuration();
configuration.setLicenseKey(
my_license_key_xml
);
configuration.setDocument(html_in_url);
configuration.setLogger(logger);
List<Configuration.ViewerPreferences> prefls = configuration.getViewerPreferences();
int n=prefls.size() + 1, i=0;
Configuration.ViewerPreferences[] prefs = new Configuration.ViewerPreferences[ n ];
for(Configuration.ViewerPreferences p : prefls)
{ prefs[i] = p;
i+=1;
}
prefs[i]= Configuration.ViewerPreferences.PAGE_MODE_USE_OUTLINES;
configuration.setViewerPreferences(prefs);
configuration.setAddLinks(true);
configuration.setAddBookmarks(true);
Result result = r.convert(configuration, pdf_out);
pdf_out.close();
if(result != null)
{ Log l = result.getLog();
if(l != null)
{ for(Record rec : l.getRecords())
System.err.println(rec.getMessage());
}else
{ System.out.println("No log records produced.");
}
}
}else
{ System.err.println("new PDFreactor failed.");
}
}catch(Exception e)
{ System.err.println("PDFreactor conversion failed: "+e.toString());
}
}else
{ System.err.println("Expected -f <html input file name> -o <pdf output file name> arguments.");
}
}
}
Merci! Cela confirme ce que je pensais. Bien sûr, on pourrait écrire un programme basé sur pdfedit pour enlever ces logos - mais je ne le ferai pas. – JVD
il est dommage qu'il n'y ait pas d'équivalent open-source, pourtant, qui permet d'utiliser les médias paginés CSS3 et les fonctions CSS & HTML 5 modernes, même si j'espère pouvoir les assembler à partir des feuilles de style Apache FOP + XSL + TeX ou groff/troff + ghostscript, et j'utilise PDFreactor comme implémentation de référence et standard jusqu'à ce que cela fonctionne. Par ailleurs, il est facile de créer des documents avec HTML 5 + CSS3 grâce à PDFreactor - bien que les fonctionnalités de médias paginés spéciaux (par exemple footnotes & header + footer content) nécessitent une gestion JavaScript spéciale pour s'afficher correctement dans un navigateur. – JVD