You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by 김주민 <jm...@kdn.com> on 2000/09/06 06:50:37 UTC
I want to ask you for encoding in FOP process
Hi..
I see Fop Process http://xml.apache.org/fop .
I want to make pdf file with XML and XSL.
that is,.. XML + XSL ---> FO(flow object) --->PDF
but i don't know that how encoding of Korean Language.
Problem is Korean Language encoding at FO--> PDF process(FOP)
XML and XSL encoded euc-kr.
FO is right changed.
but PDF translation broked Korean language.
Please, how resolve?
I am very sorry that i can speak English a little.
and hope for you answer.
This is XML file,XSL file and program-source.
XML file-->
=============================================
<?xml version="1.0" encoding="euc-kr"?>
<?xml-stylesheet type="text/xsl" href="Transmittal_return_html.xsl"?>
<CTS_CORRESP>
<CORRESP>
<COR_SERIAL>1234</COR_SERIAL>
<USER_NAME>BUMHAN1</USER_NAME>
<REAL_NAME>범한사용자</REAL_NAME>
<FROM_DEPT>개발부</FROM_DEPT>
<FROM_COMPANY>BUMHAN</FROM_COMPANY>
<FROM_COMPANY_NAME>범한주식회사</FROM_COMPANY_NAME>
<FROM_COMPANY_ADDR>경남 창원시 팔용동 12/14 123</FROM_COMPANY_ADDR>
<R_USER_NAME>AE1</R_USER_NAME>
<R_REAL_NAME>홍길동</R_REAL_NAME>
<TO_DEPT>울진5&6호기 설계부서</TO_DEPT>
<TO_COMPANY>KOPEC</TO_COMPANY>
<T0_COMPANY_NAME>한국전력기술주식회사</T0_COMPANY_NAME>
<TO_COMPANY_ADDR>경기도 용인시 용인동 123-123</TO_COMPANY_ADDR>
<FROM_TRANSMITTAL_NO>YS301-3503</FROM_TRANSMITTAL_NO>
<FROM_TRANSMITTAL_DATE>20000801</FROM-SUBMITTAL_DATE>
<TO_TRANSMITTAL_NO>E231-3503</TO_TRANSMITTAL_NO>
<TO_SUBMITTAL_DATE>20000810</TO_SUBMITTAL_DATE>
<PROJECT_NAME>울진5&6호기</PROJECT_NAME>
<SPEC_NO>spec1</SPEC_NO>
<ETC>technical sepcification</ETC>
<REMARKS>See ATTACH</REMARKS>
<CDRL>
<T_SERIAL>4052</T_SERIAL>
<PROJECT_DOC_NO>E231-CL-A01-01</PROJECT_DOC_NO>
<SUPPLIER_DOC_NO>5010-CL-A01-01</SUPPLIER_DOC_NO>
<PAGE>10</PAGE>
<REV_NO>1</REV_NO>
<QTY_TYPE>5P</QTY_TYPE>
<TITLE>DRAWING AND DATA SUBMITTAL SCHEDULE</TITLE>
<SOURCE_FILE>문서1.doc</SOURCE_FILE>
<FOR_R>X</FOR_R>
<FOR_I></FOR_I>
<RS>2</RS>
</CDRL>
<CDRL>
<T_SERIAL>4053</T_SERIAL>
<PROJECT_DOC_NO>E231-CL-A01-02</PROJECT_DOC_NO>
<SUPPLIER_DOC_NO>5010-CL-A01-02</SUPPLIER_DOC_NO>
<PAGE>5</PAGE>
<REV_NO>1</REV_NO>
<QTY_TYPE>5P</QTY_TYPE>
<TITLE>DRAWING AND DATA SUBMITTAL SCHEDULE detail_1</TITLE>
<SOURCE_FILE>문서1_세부내용1.ppt</SOURCE_FILE>
<FOR_R></FOR_R>
<FOR_I>X</FOR_I>
<RS>2</RS>
</CDRL>
<CC>
<REFERENCER>AE2</REFERENCER>
<REF_REAL_NAME>설계담당2</REF_REAL_NAME>
</CC>
<CC><REFERENCER>AE3</REFERENCER>
<REF_REAL_NAME>설계담당3</REF_REAL_NAME>
</CC>
</CORRESP>
</CTS_CORRESP>
XSL file-->
=============================================
<?xml version="1.0" encoding="euc-kr"?>
<xsl:style-sheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
result-ns="fo" indent-result="yes">
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-master-name="1">
<fo:region-body margin-top="3cm" margin-left="1cm" margin-right="1cm" margin-bottom="1cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence>
<fo:sequence-specification>
<fo:sequence-specifier-single page-master-name="1" />
</fo:sequence-specification>
<xsl:apply-templates select="CTS_CORRESP/CORRESP" />
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="CTS_CORRESP/CORRESP" >
<fo:flow>
<fo:block font-size="15pt" text-align="centered" space-after.optimum="20pt">
SUPPLIER'S TRANSMITTAL
</fo:block>
<fo:table table-width="18.5cm" height="4cm">
<fo:table-column column-width="6cm" />
<fo:table-column column-width="6.5cm" />
<fo:table-column column-width="6cm" />
<fo:table-body>
<fo:table-row line-height="0.8cm">
<fo:table-cell border-style="solid" border-color="black" border-width="1pt">
<fo:block font-size="8pt" start-indent="2pt" line-height="10pt">
From : <xsl:value-of select="REAL_NAME" />
</fo:block>
<fo:block font-size="8pt" start-indent="25pt" line-height="10pt">
<xsl:value-of select="FROM_COMPANY" />
</fo:block>
<fo:block font-size="8pt" start-indent="25pt" line-height="10pt">
<xsl:value-of select="FROM_COMPANT_ADDR" />
</fo:block>
<fo:block font-size="8pt" space-before.optimum="10pt" start-indent="2pt" line-height="10pt">
Supplier
</fo:block>
<fo:block font-size="8pt" start-indent="2pt" line-height="10pt">
Transmittal No. : <xsl:value-of select="FROM_TRANSMITTAL_NO" />
</fo:block>
<fo:block font-size="8pt" start-indent="2pt" line-height="10pt">
Date : <xsl:value-of select="FROM_SUBMITTAL_DATE" />
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-size="8pt" line-height="10pt" start-indent="5pt">
To : <xsl:value-of select="R_REAL_NAME" />
</fo:block>
<fo:block font-size="8pt" line-height="10pt" start-indent="15pt">
<xsl:value-of select="TO_COMPANY" />
</fo:block>
<fo:block font-size="8pt" line-height="10pt" start-indent="15pt">
<xsl:value-of select="TO_COMPANY_ADDR" />
</fo:block>
<fo:block font-size="8pt" space-before.optimum="10pt" start-indent="2pt" line-height="10pt">
Project Name : <xsl:value-of select="PROJECT_NAME" />
</fo:block>
<fo:block font-size="8pt" start-indent="2pt" line-height="10pt">
Spec No. : <xsl:value-of select="SPEC_NO" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-color="black" border-width="1pt">
<xsl:for-each select="CC" >
<fo:block font-size="8pt" start-indent="2pt" line-height="10pt">
CC:<xsl:value-of select="REFERENCER" />
</fo:block>
<fo:block font-size="8pt" start-indent="10pt" line-height="10pt" space-after.optimum="3pt">
<xsl:value-of select="REF_REAL_NAME" />
</fo:block>
</xsl:for-each>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
<fo:block space-after.optimum="2.62cm" />
<fo:block-container width="15cm" height="22pt" top="4.8cm" position="absolute">
<fo:block font-size="8pt" line-height="10pt">
The following listed documents are submitted in accordance with
</fo:block>
<fo:block font-size="8pt" line-height="10pt">
<xsl:value-of select="ETC" />
</fo:block>
<fo:display-rule line-tickness="2pt" length="1cm" />
</fo:block-container>
<fo:block-container width="5cm" height="0.6cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" position="absolute">
<fo:block font-size="8pt">
DOCUMENT NUMBER
</fo:block>
</fo:block-container>
<fo:block-container width="4cm" height="0.6cm"
border-color="black" border-style="solid" border-width="1pt"
top="6.6cm" position="absolute">
<fo:block font-size="8pt">
Project Doc. No.(PNS)
</fo:block>
</fo:block-container>
<fo:block-container width="4cm" height="0.6cm"
border-color="black" border-style="solid" border-width="1pt"
top="7.2cm" position="absolute">
<fo:block font-size="8pt">
Supplier's Doc. No.
</fo:block>
</fo:block-container>
<fo:block-container width="1cm" height="1.2cm"
border-color="black" border-style="solid" border-width="1pt"
top="6.6cm" left="4cm" position="absolute">
<fo:block font-size="8pt">
Page
</fo:block>
</fo:block-container>
<fo:block-container width="0.75cm" height="1.8cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" left="5cm" position="absolute">
<fo:block font-size="8pt">
Rev.
</fo:block>
</fo:block-container>
<fo:block-container width="0.75cm" height="1.8cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" left="5.75cm" position="absolute">
<fo:block font-size="8pt">
QTY
</fo:block>
<fo:block font-size="8pt">
&
</fo:block>
<fo:block font-size="8pt">
TYPE
</fo:block>
</fo:block-container>
<fo:block-container width="10cm" height="1.8cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" left="6.5cm" position="absolute">
<fo:block font-size="8pt">
DOCUMENT TITLE
</fo:block>
</fo:block-container>
<fo:block-container width="1cm" height="0.6cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" left="16.5cm" position="absolute">
<fo:block font-size="8pt">
FOR
</fo:block>
</fo:block-container>
<fo:block-container width="0.5cm" height="1.2cm"
border-color="black" border-style="solid" border-width="1pt"
top="6.6cm" left="16.5cm" position="absolute">
<fo:block font-size="8pt">
R
</fo:block>
</fo:block-container>
<fo:block-container width="0.5cm" height="1.2cm"
border-color="black" border-style="solid" border-width="1pt"
top="6.6cm" left="17cm" position="absolute">
<fo:block font-size="8pt">
I
</fo:block>
</fo:block-container>
<fo:block-container width="0.81cm" height="1.8cm"
border-color="black" border-style="solid" border-width="1pt"
top="6cm" left="17.5cm" position="absolute">
<fo:block font-size="8pt">
RS
</fo:block>
</fo:block-container>
<fo:table height="15cm" table-width="300pt"
space-after.optimum="0pt" border-color="black" border-style="solid" border-width="1pt" end-indent="1pt">
<fo:table-column column-width="4cm" />
<fo:table-column column-width="1cm" />
<fo:table-column column-width="0.75cm" />
<fo:table-column column-width="0.75cm" />
<fo:table-column column-width="10cm" />
<fo:table-column column-width="0.5cm" />
<fo:table-column column-width="0.5cm" />
<fo:table-column column-width="0.81cm" />
<fo:table-body>
<xsl:for-each select="CDRL">
<fo:table-row space-after.optimum="0pt" >
<fo:table-cell line-height="0.5cm" border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" line-height="0.6cm">
<xsl:value-of select="PROJECT_DOC_NO" />
</fo:block>
<fo:block-container width="10pt" height="1pt">
<fo:display-rule line-tickness="1pt" length="10pt" end-indent="2pt"/>
</fo:block-container>
<fo:block font-size="8pt" line-height="0.6cm">
<xsl:value-of select="SUPPLIER_DOC_NO" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" >
<xsl:value-of select="PAGE" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt">
<xsl:value-of select="REV_NO" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" >
<xsl:value-of select="QTY_NO" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" >
<xsl:value-of select="TITLE" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" >
<xsl:value-of select="FOR_R" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt" >
<fo:block font-size="8pt" >
<xsl:value-of select="FOR_I" />
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-style="solid" border-width="1pt">
<fo:block font-size="8pt" >
<xsl:value-of select="RS" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
<fo:block-container border-color="black" border-width="1pt" border-style="solid"
width="12cm" height="2.78cm" top="20.09cm" position="absolute">
<fo:block font-size="8pt">
Remark:
</fo:block>
</fo:block-container>
<fo:block-container border-color="black" border-width="1pt" border-style="solid"
width="6.3cm" height="1.39cm" top="20.09cm" left="12cm" position="absolute">
<fo:block font-size="8pt">
A/E's Signature
</fo:block>
</fo:block-container>
<fo:block-container border-color="black" border-width="1pt" border-style="solid"
width="6.3cm" height="1.39cm" top="21.48cm" left="12cm" position="absolute">
<fo:block font-size="8pt">
Name / Signature
</fo:block>
</fo:block-container>
</fo:flow>
</xsl:template>
</xsl:style-sheet>
program-source------>
=============================================
import java.net.*;
import java.io.*;
import org.apache.fop.apps.*;
import org.w3c.dom.*;
import oracle.xml.parser.v2.*;
public class Transform{
DOMParser parser;
public XMLDocument parsing(XMLDocument xmlDoc, String xslFileName) throws Exception{
parser = new DOMParser();
XMLDocument xslDoc = null;
XMLDocument xml = xmlDoc;
XMLDocument out = null;
parser = new DOMParser();
parser.setPreserveWhitespace(true);
URL xslURL = createURL(xslFileName);
parser.parse(xslURL);
xslDoc = parser.getDocument();
XSLStylesheet xsl = new XSLStylesheet(xslDoc, xslURL);
XSLProcessor processor = new XSLProcessor();
processor.showWarnings(true);
processor.setErrorStream(System.err);
DocumentFragment result = processor.processXSL(xsl, xml);
out = new XMLDocument();
out.appendChild(result);
out.setEncoding("euc-kr");
return out;
}
public URL createURL(String fileName){
URL url = null;
try{
url = new URL(fileName);
}catch (MalformedURLException ex){
File f = new File(fileName);
try{
String path = f.getAbsolutePath();
String fs = System.getProperty("file.separator");
if (fs.length() == 1){
char sep = fs.charAt(0);
if (sep != '/')
path = path.replace(sep, '/');
if (path.charAt(0) != '/')
path = '/' + path;
}
path = "file://" + path;
url = new URL(path);
}catch (MalformedURLException e){
System.out.println("Cannot create url for: " + fileName);
System.exit(0);
}
}
return url;
}
public static String kscTOiso(String str) {
try {
str = new String(str.getBytes("8859_1"), "ksc5601");
}catch(UnsupportedEncodingException e){
System.err.println(e.getMessage());
}
return str;
}
public static String isoTOksc(String str) {
try {
str = new String(str.getBytes("KSC5601"), "8859_1");
}catch(UnsupportedEncodingException e) {
System.err.println(e.getMessage());
}
return str;
}
public XMLDocument xmlParse(String xmlFileName) throws Exception{
parser = new DOMParser();
parser.setPreserveWhitespace(true);
URL xmlURL = createURL(xmlFileName);
parser.parse(xmlURL);
XMLDocument xml = parser.getDocument();
return xml;
}
public void createPDF(XMLDocument out){
try{
Driver driver = new Driver();
String version = Version.getVersion();
driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
driver.setWriter(new PrintWriter(new FileWriter("transmittal.pdf")));
driver.buildFOTree(out);
driver.format();
driver.render();
}catch (Exception e) {
System.err.println("FATAL ERROR: " + e.getMessage());
System.exit(1);
}
}
public void createHTML(XMLDocument out) throws Exception{
out.print(System.out);
FileWriter fwriter = new FileWriter("Transmittal_html.html",false);
BufferedWriter bwriter = new BufferedWriter(fwriter);
PrintWriter pwriter = new PrintWriter(bwriter);
out.print(pwriter);
}
public static void main(String args[]){
try{
if (args.length != 2){
System.err.println("Usage: java XSLSample xslfile xmlfile");
System.exit(1);
}
String xslFileName = args[0];
String xmlFileName = args[1];
Transform tf = new Transform();
XMLDocument xml = tf.xmlParse(xmlFileName);
XMLDocument out = tf.parsing(xml,xslFileName);
tf.createPDF(out);
// tf.createHTML(out);
}catch (Exception e){
e.printStackTrace();
}
}
}
Re: I want to ask you for encoding in FOP process
Posted by Christian Geisert <Ch...@isu-gmbh.de>.
> ±èÁֹΠwrote:
>
> Hi..
> I see Fop Process http://xml.apache.org/fop .
>
> I want to make pdf file with XML and XSL.
>
> that is,.. XML + XSL ---> FO(flow object) --->PDF
>
> but i don't know that how encoding of Korean Language.
>
> Problem is Korean Language encoding at FO--> PDF process(FOP)
AFAIK FOP supports at the moment only fonts with "WinAnsiEncoding" which is
similar to ISO-8859-1 (western european latin1)
> XML and XSL encoded euc-kr.
> FO is right changed.
> but PDF translation broked Korean language.
> Please, how resolve?
>
> I am very sorry that i can speak English a little.
No problem at all!
> and hope for you answer.
Well, wrong answer for you.
Maybe PassiveTex supports Korean (Sebastian?)
Adios,
Christian