Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
ac50b4f0
Kaydet (Commit)
ac50b4f0
authored
Eyl 18, 2001
tarafından
Bertram Nolte
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added new Java servlet example.
üst
b1962536
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
360 additions
and
0 deletions
+360
-0
ConverterServlet.html
odk/examples/java/ConverterServlet/ConverterServlet.html
+45
-0
ConverterServlet.java
odk/examples/java/ConverterServlet/ConverterServlet.java
+215
-0
Makefile
odk/examples/java/ConverterServlet/Makefile
+78
-0
README
odk/examples/java/ConverterServlet/README
+22
-0
No files found.
odk/examples/java/ConverterServlet/ConverterServlet.html
0 → 100644
Dosyayı görüntüle @
ac50b4f0
<html><head><title>
Document Converter
</title></head><body>
<h1>
Document Converter
</h1>
<p>
Converting documents with a remote running OpenOffice.org.
</p>
<form
action=
"http://127.0.0.1:8100/servlet/ConverterServlet"
method=
post
enctype=
"multipart/form-data"
>
<table
width=
"510"
border=
"0"
>
<tr>
<td>
Local document
</td>
<td>
<input
type=
file
size=
50
maxlength=
100000
name=
"DocumentToBeConverted"
>
</td>
</tr>
<tr>
<td>
Target document type
</td>
<td>
<select
name=
"converttype"
>
<option
selected
>
swriter: StarOffice XML (Writer)
</option>
<option>
swriter: HTML (StarWriter)
</option>
<option>
swriter: MS Word 97
</option>
<option>
swriter: Text
</option>
<option>
scalc: StarOffice XML (Calc)
</option>
<option>
scalc: HTML (StarCalc)
</option>
<option>
scalc: MS Excel 97
</option>
<option>
sdraw: StarOffice XML (Draw)
</option>
<option>
simpress: StarOffice XML (Impress)
</option>
<option>
simpress: MS PowerPoint 97
</option>
</select>
</td>
</tr>
<tr>
<td>
Extension
</td>
<td>
<input
type=
text
name=
extension
>
</td>
</tr>
</table>
<p>
The converted document will be returned by the server. If you selected the
target document type
"
swriter: HTML (StarWriter)
"
or
"
scalc:
HTML (StarCalc)
"
, the document will be shown in the browser. Otherwise,
a dialog will be opened, which allows you to open or save the converted document.
</p>
<p>
<input
type=
submit
value=
"Convert"
>
</p>
</form>
</body></html>
odk/examples/java/ConverterServlet/ConverterServlet.java
0 → 100644
Dosyayı görüntüle @
ac50b4f0
// JDK API
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.BufferedInputStream
;
import
java.util.Enumeration
;
// Servlet API
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServlet
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.ServletOutputStream
;
// Helper API
import
com.oreilly.servlet.MultipartRequest
;
import
com.oreilly.servlet.MultipartResponse
;
import
com.oreilly.servlet.ServletUtils
;
// UNO API
import
com.sun.star.bridge.XUnoUrlResolver
;
import
com.sun.star.lang.XMultiServiceFactory
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.frame.XComponentLoader
;
import
com.sun.star.beans.PropertyValue
;
import
com.sun.star.frame.XStorable
;
import
com.sun.star.lang.XComponent
;
/** This class implements a http servlet in order to convert an incoming document
* with help of a running OpenOffice.org and to push the converted file back
* to the client.
*/
public
class
ConverterServlet
extends
HttpServlet
{
/** Specifies the working directory on the web server.
*/
private
String
stringWorkingDirectory
=
"g:/trash/"
;
/** Called by the server (via the service method) to allow a servlet to handle
* a POST request. The file from the client will be uploaded to the web server
* and converted on the web server and after all pushed to the client.
* @param request Object that contains the request the client has made of the servlet.
* @param response Object that contains the response the servlet sends to the client.
* @throws ServletException If the request for the POST could not be handled.
* @throws IOException If an input or output error is detected when the servlet handles the request.
*/
protected
void
doPost
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
java
.
io
.
IOException
{
try
{
// Construct a MultipartRequest to help read the information.
// Pass in the request, a directory to save files to, and the
// maximum POST size we should attempt to handle.
MultipartRequest
multipartrequest
=
new
MultipartRequest
(
request
,
stringWorkingDirectory
,
5
*
1024
*
1024
);
// Getting all file names from the request
Enumeration
files
=
multipartrequest
.
getFileNames
();
// Every received file will be converted to the specified type
while
(
files
.
hasMoreElements
())
{
// Getting the name from the element
String
stringName
=
(
String
)
files
.
nextElement
();
// Getting the filename from the request
String
stringFilename
=
multipartrequest
.
getFilesystemName
(
stringName
);
// Converting the given file on the server to the specified type and
// append a special extension
String
stringConvertedFile
=
this
.
convertDocument
(
stringWorkingDirectory
+
stringFilename
,
multipartrequest
.
getParameter
(
"converttype"
),
multipartrequest
.
getParameter
(
"extension"
)
);
// Constructing the multi part response to the client
MultipartResponse
multipartresponse
=
new
MultipartResponse
(
response
);
// Is the convert type HTML?
if
(
(
multipartrequest
.
getParameter
(
"converttype"
).
equals
(
"swriter: HTML (StarWriter)"
)
)
||
(
multipartrequest
.
getParameter
(
"converttype"
).
equals
(
"scalc: HTML (StarCalc)"
)
)
)
{
// Setting the content type of the response being sent to the client
// to text
multipartresponse
.
startResponse
(
"text/html"
);
}
else
{
// Setting the content type of the response being sent to the client
// to application/octet-stream so that file will open a dialog box
// at the client in order to save the converted file
multipartresponse
.
startResponse
(
"application/octet-stream"
);
}
// Pushing the converted file to the client
ServletUtils
.
returnFile
(
stringConvertedFile
,
response
.
getOutputStream
()
);
// Finishing the multi part response
multipartresponse
.
finish
();
}
}
catch
(
Exception
exception
)
{
System
.
err
.
println
(
exception
.
toString
()
);
}
}
/** This method converts a document to a given type by using a running
* OpenOffice.org and saves the converted document to the specified
* working directory.
* @param stringDocumentName The full path name of the file on the server to be converted.
* @param stringConvertType Type to convert to.
* @param stringExtension This string will be appended to the file name of the converted file.
* @return The full path name of the converted file will be returned.
* @see stringWorkingDirectory
*/
private
String
convertDocument
(
String
stringDocumentName
,
String
stringConvertType
,
String
stringExtension
)
{
String
stringConvertedFile
=
""
;
// Converting the document to the favoured type
try
{
// Composing the URL
String
stringUrl
=
"file:///"
+
stringDocumentName
;
/* Bootstraps a servicemanager with the jurt base components
registered */
XMultiServiceFactory
xmultiservicefactory
=
com
.
sun
.
star
.
comp
.
helper
.
Bootstrap
.
createSimpleServiceManager
();
/* Creates an instance of the component UnoUrlResolver which
supports the services specified by the factory. */
Object
objectUrlResolver
=
xmultiservicefactory
.
createInstance
(
"com.sun.star.bridge.UnoUrlResolver"
);
// Create a new url resolver
XUnoUrlResolver
xurlresolver
=
(
XUnoUrlResolver
)
UnoRuntime
.
queryInterface
(
XUnoUrlResolver
.
class
,
objectUrlResolver
);
// Resolves an object that is specified as follow:
// uno:<connection description>;<protocol description>;<initial object name>
Object
objectInitial
=
xurlresolver
.
resolve
(
"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"
);
// Create a service manager from the initial object
xmultiservicefactory
=
(
XMultiServiceFactory
)
UnoRuntime
.
queryInterface
(
XMultiServiceFactory
.
class
,
objectInitial
);
/* A desktop environment contains tasks with one or more
frames in which components can be loaded. Desktop is the
environment for components which can instanciate within
frames. */
XComponentLoader
xcomponentloader
=
(
XComponentLoader
)
UnoRuntime
.
queryInterface
(
XComponentLoader
.
class
,
xmultiservicefactory
.
createInstance
(
"com.sun.star.frame.Desktop"
)
);
// Preparing properties for loading the document
PropertyValue
propertyvalue
[]
=
new
PropertyValue
[
1
];
// Setting the flag for hidding the open document
propertyvalue
[
0
]
=
new
PropertyValue
();
propertyvalue
[
0
].
Name
=
"Hidden"
;
propertyvalue
[
0
].
Value
=
new
Boolean
(
true
);
// Loading the wanted document
Object
objectDocumentToStore
=
xcomponentloader
.
loadComponentFromURL
(
stringUrl
,
"_blank"
,
0
,
propertyvalue
);
// Getting an object that will offer a simple way to store a document to a URL.
XStorable
xstorable
=
(
XStorable
)
UnoRuntime
.
queryInterface
(
XStorable
.
class
,
objectDocumentToStore
);
// Preparing properties for converting the document
propertyvalue
=
new
PropertyValue
[
2
];
// Setting the flag for overwriting
propertyvalue
[
0
]
=
new
PropertyValue
();
propertyvalue
[
0
].
Name
=
"Overwrite"
;
propertyvalue
[
0
].
Value
=
new
Boolean
(
true
);
// Setting the filter name
propertyvalue
[
1
]
=
new
PropertyValue
();
propertyvalue
[
1
].
Name
=
"FilterName"
;
propertyvalue
[
1
].
Value
=
stringConvertType
;
// Appending the favoured extension to the origin document name
stringConvertedFile
=
stringUrl
+
"."
+
stringExtension
;
// Storing and converting the document
xstorable
.
storeAsURL
(
stringConvertedFile
,
propertyvalue
);
// Getting the method dispose() for closing the document
XComponent
xcomponent
=
(
XComponent
)
UnoRuntime
.
queryInterface
(
XComponent
.
class
,
xstorable
);
// Closing the converted document
xcomponent
.
dispose
();
}
catch
(
Exception
exception
)
{
exception
.
printStackTrace
();
return
(
""
);
}
if
(
stringConvertedFile
.
startsWith
(
"file:///"
)
)
{
// Truncating the beginning of the file name
stringConvertedFile
=
stringConvertedFile
.
substring
(
8
);
}
// Returning the name of the converted file
return
(
stringConvertedFile
);
}
}
odk/examples/java/ConverterServlet/Makefile
0 → 100644
Dosyayı görüntüle @
ac50b4f0
# Builds the ConvertServlet java demo.
PRJ
=
..
$(PS)
..
$(PS)
..
SETTINGS
=
../../../settings
# Include settings makefile depending on platform/compiler
ifeq
"$(MAKECMDGOALS)"
"win_microcxx"
-include
$(SETTINGS)/win_microcxx_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_BIN)
endif
ifeq
"$(MAKECMDGOALS)"
"solaris_workshopcxx"
-include
$(SETTINGS)/solaris_workshopcxx_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_LIB)
endif
ifeq
"$(MAKECMDGOALS)"
"linux_gcc"
-include
$(SETTINGS)/linux_gcc_settings.mk
ifndef
PS
$(error
Platform/Compiler
settings
file
not
found)
endif
SHAREDLIB_OUT
=
$(OUT_LIB)
endif
# Define non-platform/compiler specific settings
include
$(SETTINGS)/dk.mk
include
$(SETTINGS)/std.mk
# Define non-platform/compiler specific settings
# Targets
.PHONY
:
ALL
ALL
:
@
echo
-------------------------------------------------------------
@
echo
You must supply a target where TARGET is one of the following:
@
echo
@
echo
win_microcxx : Windows using Microsoft C++ compiler/linker
@
echo
solaris_workshopcxx : Solaris using Sun Workshop C++ compiler
@
echo
linux_gcc : Linux using gcc
@
echo
-------------------------------------------------------------
JAVAFILES
=
\
ConverterServlet.java
\
CLASSFILES
=
$
(
patsubst %.java,
$(OUT_CLASS)$(PS)
%.class,
$(JAVAFILES)
)
DK_CLASSPATH
=
$
(
subst
$(EMPTYSTRING)
$(EMPTYSTRING)
,,
\
$(CLASSES_DIR)$(PS)
jurt.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
unoil.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
ridl.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
sandbox.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
juh.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
servlet.jar
\
$(PATH_SEPARATOR)$(CLASSES_DIR)$(PS)
cos.jar
\
$(PATH_SEPARATOR)$(OUT_CLASS)
\
)
win_microcxx
:
$(CLASSFILES)
solaris_workshopcxx
:
$(CLASSFILES)
linux_gcc
:
$(CLASSFILES)
include
$(SETTINGS)/stdtarget.mk
$(CLASSFILES)
:
$(OUT) $(OUT_CLASS) $(JAVAFILES)
javac
-classpath
$(DK_CLASSPATH)
-d
$(OUT_CLASS)
$(JAVAFILES)
@
echo
----
@
echo
Please make the resulting class to your web server
@
echo
----
odk/examples/java/ConverterServlet/README
0 → 100644
Dosyayı görüntüle @
ac50b4f0
Servlet for converting documents
Installation instructions:
- If no web server is available you should install your favourite web server.
- Download the servlet support Java archive (cos.jar) from
http://www.servlets.com/cos/index.html and copy the file to the directory
<ODK>/classes. Also make these classes known to your web server.
- Make sure the Servlet API is in the classpath of your web server. You can
download the Servlet API from http://java.sun.com/products/servlet/index.html .
Also, you must copy the file "servlet.jar" to the directory <ODK>/classes.
- Use your GNU make (http://www.gnu.org) to build the servlet class.
- Make the servlet class known to your web server.
Converting documents with the servlet:
- In the file "ConverterServlet.html", search for the following line:
<form action="http://127.0.0.1:8100/servlet/ConverterServlet" method=post enctype="multipart/form-data">
Replace the existing IP address with your intended IP address.
- Open the file "ConverterServlet.html" in your web browser and select a file,
a type to convert the file to, and the extension for the converted file.
- Press the button. The document will be uploaded to the server, converted and
pushed back to the client. Your browser will open a dialog for saving the
converted document.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment