2014-04-10 2 views
0

클라이언트가 제공 한 소스 XML 파일이없는 XSL-FO 문서 만 보유하고 있으므로이 DB에서이 XSL-fo 파일에 값을 할당하여 PDF를 생성해야합니다.XML 소스가 아닌 DB에서 XSL-FO를 사용하여 PDF를 생성하십시오.

질문이 있으시면 1. 원본 XML 파일이 없으면 XSL-FO 만 사용하는 것으로 간주됩니다. 또는이 XSL-FO를 변형하고 작성하는 데 사용 된 XML 원본의 XML 스키마를 요청해야합니까? ? "XSLFO의 전형적인 세대는 XSLT 스타일 시트를 사용하는 XML에서 나옵니다. 그렇다고해서 그럴 필요는 없습니다. 우리 애플리케이션이 정보를 표현해야하는 상황이있을 수 있습니다. 페이지가 매겨진 형태로되어 있으며 이러한 응용 프로그램은 XSLFO 어휘의 인스턴스를 직접 생성하여 출력 매체로 해석 할 수 있습니다. " 출처 : http://www.xml.com/lpt/a/939

2.How 내가 효과적으로 @agencyType 같은 @ 기호로 시작 속성에 값을 할당 할 수있는 등 사용자가 .NET의 usinf XSL-FO의 PDF를 생성하는 것이 좋습니다 않는 라이브러리

3 ? 당신의 도움에 대한

xsl:when test="@paymentType=5 or @paymentType=8"/> 
     <xsl:when test="parent::node()/@isCopy='true' "/> 
      <xsl:when test="@agencyType='3' "/> 
      <xsl:when test="@separateAgencyCommissionInvoiceNumber!='' "/> 
      <xsl:when test="@differentShipmentAddress='true' "> 
       <fo:page-sequence master-reference="Rechnung"> 
        <fo:static-content flow-name="xsl-region-before" font-family="Verdana" font-size="8.5pt" line-height="10pt"> 
         <fo:block-container width="17cm" height="2cm" top="-3mm" left="0cm" position="absolute"> 
          <fo:block font-family="CourierNew" font-size="1pt" line-height="6pt"> 
           <xsl:variable name="headerLine1"> 
            <xsl:value-of select="translate(../InserterHeaderLine/@headerLine1,'A1U','A1 ')"/> 
           </xsl:variable> 
           <xsl:value-of select="translate($headerLine1,' ','~')"/> 
          </fo:block> 
          <fo:block font-family="CourierNew" font-size="1pt" line-height="6pt"> 
           <xsl:value-of select="translate(../InserterHeaderLine/@headerLine2,' ','~')"/> 
          </fo:block> 
          <fo:block font-family="CourierNew" font-size="1pt" line-height="6pt"> 
           <xsl:value-of select="translate(../InserterHeaderLine/@headerLine3,' ','~')"/> 
          </fo:block> 
         </fo:block-container> 
        </fo:static-content> 
        <fo:flow flow-name="xsl-region-body" font-size="9pt" font-family="Verdana"> 
         <!-- abweichende Rechnungsanschrift --> 
         <fo:block-container width="9cm" height="4cm" top="2.4cm" left="0cm" position="absolute"> 
          <fo:block> 
           <xsl:value-of select="@shipmentName1Line"/> 
          </fo:block> 
          <fo:block> 
          <xsl:value-of select="@shipmentName2Line"/> 
         </fo:block> 
         <fo:block> 
          <xsl:value-of select="@shipmentName3Line"/> 
         </fo:block> 
         <fo:block> 
          <xsl:value-of select="@shipmentAddress1Line"/> 
         </fo:block> 
         <fo:block>&#160;</fo:block> 
         <fo:block> 
          <xsl:value-of select="@shipmentAddress2Line"/> 
         </fo:block> 
         <fo:block> 
          <xsl:value-of select="@shipmentAddress3Line"/> 
         </fo:block> 
        </fo:block-container> 
       </fo:flow> 
      </fo:page-sequence> 

감사 :

여기에 내가 가진 그 XSL 파일의 예입니다!

+0

나는이 질문을 정말로 이해하지 못한다. 어떤 사람은 "클라이언트가 제공 한 소스 XML 파일이없는 XSL-FO 문서를 가지고 있으며 내 DB에서이 XSL-fo 파일에 값을 할당하여 PDF를 생성해야합니다." 이미 콘텐츠가 포함 된 XSL FO 파일이 있다는 뜻입니까? 아니면 xsl : value-of 같은 것을 가진 XSL 파일을 가지고 있습니까? –

답변

0

위의 예에서 "XSL FO"파일이 아닌 "XSL"파일이 있습니다. 당신은 (a) 그 XSL을 검사하고 그것에 맞는 XML 파일을 결정할 수있다. (b) XSL에 당신에게 예제 XML 파일이 없다는 사실을 알면 놀랄 것이다.

그런 다음 일치하는 DB에서 XML을 생성하십시오. 이것은 많은 도구를 사용하여 수행 할 수 있으며 RenderX에는 DB2XML이라는 무료 도구가 있거나 Altova 또는 다른 공급 업체의 도구를 볼 수 있습니다.

관련 문제