Spesifiseer Laai Opsies

Wanneer jy’n dokument laai, kan jy’n paar gevorderde eienskappe stel. Aspose.Words bied u die LoadOptions klas, wat meer presiese beheer van die lasproses moontlik maak. Sommige laai formate het’n ooreenstemmende klas wat laai opsies vir hierdie laai formaat hou, byvoorbeeld, daar is PdfLoadOptions vir laai na PDF formaat of TxtLoadOptions vir laai na TXT. Hierdie artikel bied voorbeelde van die werk met opsies van die LoadOptions klas.

Stel Microsoft Word Weergawe om Die Voorkoms Te Verander

Verskillende weergawes van die Microsoft Word aansoek kan dokumente in verskillende vertoon. Daar is byvoorbeeld’n bekende probleem met OOXML dokumente soos DOCX of DOTX wat met WPS Office vervaardig word. In sulke gevalle kan noodsaaklike dokument opmerkings elemente ontbreek of anders geïnterpreteer word wat veroorsaak dat Microsoft Word 2019 so’n dokument anders vertoon in vergelyking met Microsoft Word 2010.

By verstek Aspose.Words maak dokumente oop met behulp van Microsoft Word 2019 reëls. As u die laai van dokumente moet laat verskyn soos dit in een van die vorige Microsoft Word - toepassingsweergawes sou gebeur, moet u die gewenste weergawe uitdruklik spesifiseer deur die MswVersion - eienskap van die LoadOptions - klas te gebruik.

Die volgende kode voorbeeld toon hoe om die Microsoft Word weergawe met laai opsies stel:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Specify load option to specify MS Word version
LoadOptions loadOptions = new LoadOptions();
loadOptions.setMswVersion(MsWordVersion.WORD_2003);
Document doc = new Document(dataDir + "document.doc", loadOptions);
doc.save(dataDir + "Word2003_out.docx");

Stel Taalvoorkeure in Om Die Voorkoms Te Verander

Die besonderhede van die vertoon van’n dokument in Microsoft Word hang nie net af van die aansoek weergawe en die MswVersion eienskap waarde, maar ook op die taal instellings. Microsoft Word kan dokumente anders wys, afhangende van die dialooginstellings “Kantoortaalvoorkeure”, wat gevind kan word in “Lêer Argentia Opsies Argentia Taal”. Die gebruik van hierdie dialoog’n gebruiker kan kies, byvoorbeeld, primêre taal, bewys tale, vertoon tale, en so aan. Aspose.Words verskaf die LanguagePreferences eienskap as die ekwivalent van hierdie dialoog. As Aspose.Words uitset verskil van die Microsoft Word uitset, stel die toepaslike waarde vir EditingLanguage – dit kan die uitsetdokument verbeter.

Die volgende kode voorbeeld toon hoe Om Japannese stel as EditingLanguage:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Specify LoadOptions to add Editing Language
LoadOptions loadOptions = new LoadOptions();
loadOptions.getLanguagePreferences().addEditingLanguage(EditingLanguage.JAPANESE);
Document doc = new Document(dataDir + "languagepreferences.docx", loadOptions);
int localeIdFarEast = doc.getStyles().getDefaultFont().getLocaleIdFarEast();
if (localeIdFarEast == (int) EditingLanguage.JAPANESE)
System.out.println("The document either has no any FarEast language set in defaults or it was set to Japanese originally.");
else
System.out.println("The document default FarEast language was set to another than Japanese language originally, so it is not overridden.");

Gebruik WarningCallback Om Probleme Te Beheer Terwyl’n Dokument Gelaai Word

Sommige dokumente kan beskadig wees, ongeldige inskrywings bevat, of funksies het wat tans nie deur Aspose.Words ondersteun word nie. As u wil weet van probleme wat voorgekom het tydens die laai van’n dokument, bied Aspose.Words die IWarningCallback - koppelvlak.

Die volgende kode voorbeeld toon die implementering van die IWarningCallback koppelvlak:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
private static class DocumentLoadingWarningCallback implements IWarningCallback {
public void warning(WarningInfo info) {
// Prints warnings and their details as they arise during document loading.
System.out.println("WARNING: " + info.getWarningType() + " source:" + info.getSource());
System.out.println("\tDescription: " + info.getDescription());
}
}

Om inligting oor alle probleme gedurende die laai tyd te kry, gebruik die WarningCallback eienskap.

Die volgende kode voorbeeld toon hoe om hierdie eiendom te gebruik:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Create a new LoadOptions object and set its WarningCallback property.
LoadOptions loadOptions = new LoadOptions();
loadOptions.setWarningCallback(new DocumentLoadingWarningCallback());
Document doc = new Document(dataDir + "input.docx", loadOptions);

Gebruik ResourceLoadingCallback Om Die Eksterne Hulpbronne Laai Beheer

‘n dokument kan eksterne skakels bevat na beelde wat êrens op’n plaaslike skyf, netwerk of Internet geleë is. Aspose.Words laai sulke beelde outomaties in’n dokument, maar daar is situasies wanneer hierdie proses beheer moet word. Byvoorbeeld, om te besluit of ons regtig nodig het om’n sekere beeld te laai of dalk slaan dit. Die ResourceLoadingCallback laai opsie laat jou toe om dit te beheer.

Die volgende kode voorbeeld toon die implementering van die IResourceLoadingCallback koppelvlak:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
private static class HtmlLinkedResourceLoadingCallback implements IResourceLoadingCallback {
public int resourceLoading(ResourceLoadingArgs args) throws Exception {
switch (args.getResourceType()) {
case ResourceType.CSS_STYLE_SHEET: {
System.out.println("External CSS Stylesheet found upon loading: " + args.getOriginalUri());
// CSS file will don't used in the document
return ResourceLoadingAction.SKIP;
}
case ResourceType.IMAGE: {
// Replaces all images with a substitute
String newImageFilename = "Logo.jpg";
System.out.println("\tImage will be substituted with: " + newImageFilename);
BufferedImage newImage = ImageIO
.read(new File(Utils.getDataDir(LoadOptionsCallbacks.class) + newImageFilename));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(newImage, "jpg", baos);
baos.flush();
byte[] imageBytes = baos.toByteArray();
baos.close();
args.setData(imageBytes);
// New images will be used instead of presented in the document
return ResourceLoadingAction.USER_PROVIDED;
}
case ResourceType.DOCUMENT: {
System.out.println("External document found upon loading: " + args.getOriginalUri());
// Will be used as usual
return ResourceLoadingAction.DEFAULT;
}
default:
throw new Exception("Unexpected ResourceType value.");
}
}
}

Die volgende kode voorbeeld toon hoe om die ResourceLoadingCallback eiendom te gebruik:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Create a new LoadOptions object and set its ResourceLoadingCallback attribute
// as an instance of our IResourceLoadingCallback implementation
LoadOptions loadOptions = new LoadOptions();
loadOptions.setResourceLoadingCallback(new HtmlLinkedResourceLoadingCallback());
// When we open an Html document, external resources such as references to CSS
// stylesheet files and external images
// will be handled in a custom manner by the loading callback as the document is
// loaded
Document doc = new Document(dataDir + "Images.html", loadOptions);
doc.save(dataDir + "Document.LoadOptionsCallback_out.pdf");

Gebruik TempFolder Om’n Geheue Uitsondering Te Vermy

Aspose.Words ondersteun uiters groot dokumente wat duisende bladsye vol ryk inhoud het. Om sulke dokumente te laai, kan baie RAM vereis. In die proses van laai, Aspose.Words benodig selfs meer geheue om tydelike strukture te hou wat gebruik word om’n dokument te ontleed.

As jy’n probleem het met Die uit-Geheue uitsondering terwyl jy’n dokument laai, probeer om die TempFolder eienskap te gebruik. In hierdie geval sal Aspose.Words sommige data in tydelike lêers stoor in plaas van geheue, en dit kan help om so’n uitsondering te vermy.

Die volgende kode voorbeeld toon hoe om TempFolderstel:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Specify LoadOptions to set Temp Folder
LoadOptions lo = new LoadOptions();
lo.setTempFolder("C:\\TempFolder\\");
Document doc = new Document(dataDir + "document.doc", lo);

Stel Die Enkodering Eksplisiet

Die meeste moderne dokumentformate stoor hul inhoud in Unicode en vereis nie spesiale hantering nie. Aan die ander kant is daar nog baie dokumente wat’n paar pre-Unicode kodering gebruik en soms koderingsinligting misloop of nie eens koderingsinligting van nature ondersteun nie. Aspose.Words probeer om die toepaslike kodering outomaties by verstek op te spoor, maar in’n seldsame geval moet u dalk’n kodering gebruik wat verskil van die een wat deur ons koderingsherkenningsalgoritme opgespoor word. In hierdie geval, gebruik die Encoding eienskap om te kry of stel die kodering.

Die volgende kode voorbeeld toon hoe om die kodering te stel om die outomaties gekies kodering oorskryf:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Set the Encoding attribute in a LoadOptions object to override the
// automatically chosen encoding with the one we know to be correct
LoadOptions loadOptions = new LoadOptions();
loadOptions.setEncoding(java.nio.charset.Charset.forName("UTF-8"));
Document doc = new Document(dataDir + "Encoded in UTF-8.txt", loadOptions);

Laai Geënkripteerde Dokumente

U kan Word-dokumente met’n wagwoord geïnkripteer laai. Om dit te doen, gebruik’n spesiale konstruktor oorlading, wat’n LoadOptions voorwerp aanvaar. Hierdie voorwerp bevat die Password eienskap, wat die wagwoord string spesifiseer.

Die volgende kode voorbeeld toon hoe om’n dokument geïnkripteer met’n wagwoord te laai:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// For complete examples and data files, please go to
// https://github.com/aspose-words/Aspose.Words-for-Java
// Load the encrypted document from the absolute path on disk.
Document doc = new Document(dataDir + "LoadEncrypted.docx", new LoadOptions("aspose"));

As u nie vooraf weet of die lêer geënkripteer is nie, kan u die FileFormatUtil - klas gebruik, wat nutmetodes bied om met lêerformate te werk, soos om die lêerformaat op te spoor of lêeruitbreidings na/van lêerformaatopsommings om te skakel. Om vas te stel of die dokument geënkripteer is en’n wagwoord benodig om dit oop te maak, gebruik die IsEncrypted eienskap.

Die volgende kode voorbeeld toon hoe om te verifieer OpenDocument of dit is geïnkripteer of nie:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
FileFormatInfo info = FileFormatUtil.detectFileFormat(dataDir + "encrypted.odt");
System.out.println(info.isEncrypted());