Atvirojo kodo „Java“ biblioteka, skirta skaičiuoklės dokumentams
Konvertuokite „Excel“ failus „Java“ programose naudodami atvirojo kodo API.
Documents4J yra atvirojo kodo Java API, konvertuojanti Microsoft Excel į kitus failų formatus. Tai pasiekiama perduodant konvertavimą bet kuriai vietinei programai, kuri supranta nurodyto failo konvertavimą į norimą tikslinį formatą. API siūlo dviejų tipų diegimus vietiniu ir nuotoliniu būdu. Naudojant vietinę versiją dokumentą galima konvertuoti tame pačiame įrenginyje, kuris yra reikalaujamo failo formato konvertavimo kabelis. Naudodami nuotolinę API, siunčiate dokumentą į serverį naudodami REST-API, o serveris atlieka prašomą konvertavimą.
„Documents4J“ yra skaidrus ir paprastas naudoti. Kūrėjai gali dirbti su vietine API versija, o kūrimas ir nuotolinė versija gali būti naudojama, kai kūrėjai paskelbia programą gamybinėje versijoje.
Darbo su Documents4J pradžia
Pirmiausia turite sukurti document4j kopiją vietiniame kompiuteryje. Tiesiog klonuokite document4j saugyklą naudodami git arba klonuodami ją tiesiogiai GitHub. Kai saugykla bus klonuota, galite sukurti projektą naudodami „Mave“.
Įdiekite „Documents4J“ per „GitHub“.
git clone https://github.com/documents4j/documents4j.git
cd documents4j
mvn package
Konvertuokite „Microsoft Excel“ naudodami „Java“.
Documents4J yra sklandi API, skirta dokumentų konvertavimui. API neatskleidžia jokios papildomos keitiklio diegimo informacijos. Norėdami atlikti dokumentų konvertavimą, API siūlo IConverter sąsają. Naudodami šią sąsają galite konvertuoti Microsoft Excel failo formatą į norimą failo formatą. Norėdami sužinoti palaikomus konvertavimo failų formatus, galite pateikti užklausą getSupportedConversion() metodu, kuris pateiks šaltinio ir tikslinio failo formatus.
Konvertuokite „Excel“ failą į kitą failo formatą naudodami „Java“.
Const WdExportFormatPDF = 17
Const MagicFormatPDF = 999
Dim arguments
Set arguments = WScript.Arguments
' Transforms a file using MS Excel into the given format.
Function ConvertFile( inputFile, outputFile, formatEnumeration )
Dim fileSystemObject
Dim excelApplication
Dim excelDocument
' Get the running instance of MS Excel. If Excel is not running, exit the conversion.
On Error Resume Next
Set excelApplication = GetObject(, "Excel.Application")
If Err <> 0 Then
WScript.Quit -6
End If
On Error GoTo 0
' Find the source file on the file system.
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
inputFile = fileSystemObject.GetAbsolutePathName(inputFile)
' Convert the source file only if it exists.
If fileSystemObject.FileExists(inputFile) Then
' Attempt to open the source document.
On Error Resume Next
Set excelDocument = excelApplication.Workbooks.Open(inputFile, , True)
If Err <> 0 Then
WScript.Quit -2
End If
On Error GoTo 0
On Error Resume Next
If formatEnumeration = MagicFormatPDF Then
excelDocument.ExportAsFixedFormat xlTypePDF, outputFile
Else
excelDocument.SaveAs outputFile, formatEnumeration
End If
' Close the source document.
excelDocument.Close False
If Err <> 0 Then
WScript.Quit -3
End If
On Error GoTo 0
' Signal that the conversion was successful.
WScript.Quit 2
Else
' Files does not exist, could not convert
WScript.Quit -4
End If
End Function
' Execute the script.
Call ConvertFile( WScript.Arguments.Unnamed.Item(0), WScript.Arguments.Unnamed.Item(1), CInt(WScript.Arguments.Unnamed.Item(2)) )
Konvertuokite „Office“ dokumentus į PDF naudodami „Java“.
Atvirojo kodo Documents4J bibliotekoje yra keletas svarbių funkcijų, skirtų „Microsoft Office“ dokumentams, pvz., „Word“, „Excel“ ir „PowerPoint“ failams konvertuoti į kitus palaikomų failų formatus, pvz., PDF arba vaizdo ir tt. Šis pavyzdys parodė, kaip lengvai programinės įrangos programuotojai gali įkelti ir konvertuoti „Microsoft Word Docx“ failą. į PDF failą su tik keliomis kodo eilutėmis.
Konvertuokite „Office Docx“ failą į PDF naudodami „Java“ biblioteką
public class NewMain {
/**
* @param args the command line arguments
* @throws java.io.FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException, IOException, InterruptedException, ExecutionException {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
InputStream in = new BufferedInputStream(new FileInputStream(System.getProperty("user.dir") + File.separator +"out.rtf"));
IConverter converter = LocalConverter.builder()
.baseFolder(new File(System.getProperty("user.dir") + File.separator +"test"))
.workerPool(20, 25, 2, TimeUnit.SECONDS)
.processTimeout(5, TimeUnit.SECONDS)
.build();
Future conversion = converter
.convert(in).as(DocumentType.RTF)
.to(bo).as(DocumentType.PDF)
.prioritizeWith(1000) // optional
.schedule();
conversion.get();
try (OutputStream outputStream = new FileOutputStream("out.pdf")) {
bo.writeTo(outputStream);
}
in.close();
bo.close();
}
}