Oldal: 1 / 1
JAVA API Timeout
Elküldve: 2016. február 3., szerda 11:46
Szerző: Kasi
Helló!
Dokumentumok pdf-re konvertálása használom az api-t.
Van valakinek arra valamilyen tapasztalata, hogy hogyan lehetne beállítani a valamilyen timeout-ot, hogy ne fusson a konvertálás órákig, ha mondjuk egy 40000 oldalas pdf-et kell megcsinálnia.
Amennyiben szükséges kódot is írok, csak egyszer gondoltam hátha van valami ötlet
Üdv.:
Kasi
Re: JAVA API Timeout
Elküldve: 2016. február 3., szerda 14:26
Szerző: Zizi64
A kód mindenképpen jó lenne, akárki is fog segíteni neked (én jávául sajnos nem értek, az API függvényeket, eljárásokat - ehhez képest - viszonylag jól ismerem ).
Meghökkenve láttam viszont, hogy 40000 (negyvenezer) oldalnyit akarsz konvertáltatni. Mit tartalmaz ez a rettenetesen nagy fájl? Képeket? Grafikonokat?
Egyáltalán a Writer applikációról van szó?
Milyen a forrásfájl típusa? Natív ODF, vagy idegen formátum?
Ezeket is jó lenne tudnia a reménybeli segítőnek.
Re: JAVA API Timeout
Elküldve: 2016. február 3., szerda 14:42
Szerző: Kasi
Meghökkenve láttam viszont, hogy 40000 (negyvenezer) oldalnyit akarsz konvertáltatni. Mit tartalmaz ez a rettenetesen nagy fájl? Képeket? Grafikonokat?
Milyen a forrásfájl típusa? Natív ODF, vagy idegen formátum?
Ez csak egy teszt excel(xlsx) fájl minden sorában van kb 4-5 cella sima szöveg.
Java kód:
A connect része
Kód: Egész kijelölése
public static void convert(File file, String outputDir) {
String oooExeFolder = PropertyUtil.getOpenOffice();
try {
// get the remote office component context
XComponentContext xContext = BootstrapSocketConnector.bootstrap(oooExeFolder);
DocumentConverter.LOG.info("Connected to a running office ...");
// get the remote office service manager
com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager();
Object oDesktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
xCompLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, oDesktop);
A mentés/convertálás része
Kód: Egész kijelölése
propertyValues = new com.sun.star.beans.PropertyValue[2];
// Setting the flag for overwriting
propertyValues[0] = new com.sun.star.beans.PropertyValue();
propertyValues[0].Name = "Overwrite";
propertyValues[0].Value = new Boolean(true);
// Setting the filter name
propertyValues[1] = new com.sun.star.beans.PropertyValue();
propertyValues[1].Name = "FilterName";
//propertyValues[1].Value = DocumentConverter.sConvertType;
String ext = null;
int lastDot = sUrl.lastIndexOf('.');
if (lastDot > 0) {
ext = sUrl.substring(lastDot + 1).toLowerCase();
}
if (writerTypes.contains(ext)) {
propertyValues[1].Value = "writer_pdf_Export";
} else if (calcTypes.contains(ext)) {
propertyValues[1].Value = "calc_pdf_Export";
} else if (drawTypes.contains(ext)) {
propertyValues[1].Value = "draw_pdf_Export";
} else {
throw new DocConvertMemorableException(SysKeys.DC_ERROR.UNSUPPORTED_FORMAT);
}
// Appending the favoured extension to the origin document name
int index1 = sUrl.lastIndexOf('/');
int index2 = sUrl.lastIndexOf('.');
String sStoreUrl = sOutUrl + sUrl.substring(index1, index2 + 1) + DocumentConverter.sExtension;
// Storing and converting the document
xStorable.storeToURL(sStoreUrl, propertyValues);
ez még nagyjából az SDK-ban található example
Re: JAVA API Timeout
Elküldve: 2016. február 3., szerda 16:31
Szerző: Zizi64
OpenOffice 4 a Window 8.1
Ha OOXML szabányú (már amennyire a szabvány MS által támogatott "Transitional" verziója szabvány-nak nevezhető) dokumentumokkal kell dolgoznod, akkor inkább a LibreOffice-t javasolnám használni. Sokkal jobb a kompatibilitása az idegen fájlformátumokkal.