Как вывести текстовое (повествовательное) поле xml с разрывами страниц, чтобы дублировать внешний вид бумажной формы с помощью xslt? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь воссоздать форму, которую наш округ использует для арестов, используя xslt для форматирования xml из нашего программного обеспечения для управления записями. Я много разобрался с использованием Google и stackoverflow, но, поскольку мне нужно воссоздать существующую бумажную форму, мне нужно, чтобы выходные данные повествования были разорваны на определенную длину, чтобы сохранить макет формы, а затем продолжить на новой странице Форма, которая является дубликатом первой страницы.

Вот xsl для шаблона повествования:

<code><?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type='text/xsl'     href='../../../temp/FormData_FormInput.xml'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0"/>

<xsl:template match="FormData">
    <html>
        <head>
            <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/HeaderStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/SectionStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/FieldStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/DetailStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/BodyStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/ProbableCauseStyles.css"/>
            <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/bookstyle.css"/>
            <xsl:choose>
                <xsl:when test="@IsNightMode='true'">
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Dark/HeaderStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Dark/SectionStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Dark/FieldStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Dark/DetailStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Dark/BodyStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/bookstyle.css"/>
                </xsl:when>
                <xsl:otherwise>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Light/HeaderStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Light/SectionStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Light/FieldStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Light/DetailStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Light/BodyStyles.css"/>
                    <link rel="stylesheet" type="text/css" href="../fieldreports/forms/GenericForm/IncidentStyles/Layout/bookstyle.css"/>
                </xsl:otherwise>
            </xsl:choose>
        </head>
        <body>
            <xsl:for-each select="/FormData/Persons/Person[Arrest]">
                <!-- Only display if JJIS arrest section is not present. -->
                <xsl:if test="not(Arrest/JJIS)">
                    <!--Header-->
                    <xsl:call-template name="Header"/>

                    <!--Body-->
                    <xsl:call-template name="Person"/>
                    <xsl:call-template name="Incident"/>
                    <xsl:call-template name="Narrative"/>
                    <xsl:if test="position() != last()">
                        <div class="Page_Break" />
                    </xsl:if>
                </xsl:if>
            </xsl:for-each>
        </body>
    </html>
</xsl:template>
<xsl:template name="Narrative">
<div><br></br></div>
<div style="width:100%; border-bottom:2px black solid;"></div>
<div><br></br></div>
<div class="divTable">
<div class="divTableBody">
    <div class="divTableRow">
        <div class="divTableCell" style="width:100%;">PROBABLE CAUSE AFFIDAVIT: (Specify probable cause for each charge)</div>
    </div>
    <div class="divTableRow">   
        <div class="divTableCell" style="width:100%;">Before me, the undersigned authority personally appeared <xsl:value-of select='/FormData/General/ReportingOfficer'/> who being duly sworn, alleges, on information and belief that on <xsl:value-of select='/FormData/General/WhenReported'/> in LAKE County, Florida, the defendant did:</div>
    </div>
</div>
</div>

<div><br></br></div>
<div class="divTable">
<div class="divTableBody">
    <div class="divTableRow">
        <div class="divTableCell" style="width:100%;"><pre><xsl:value-of select='/FormData/Narratives/Narrative/Text'/>

Присягнул и ПОДПИСАЛСЯ до меня это ___________ день ________________ АФФИАНТ 20 ______ Нотариус Пабли c | Сертифицированный сотрудник Агентство по аресту


Страница ____ из ____

В этом разделе повествование извлекается из xml:

<code>            <div class="divTableCell" style="width:100%;"><pre><xsl:value-of select='/FormData/Narratives/Narrative/Text'/>

Когда повествование длинное, оно мне нужно чтобы перейти на новую страницу, идентичную этой, но продолжающую там, где остановился рассказ. Вот как выглядит PDF-версия формы: Повествовательная страница

Я не программист и, возможно, мне не по себе, но у меня есть все остальное, чтобы справиться с этим точка. Я был бы очень признателен за любую помощь.

Выходной формат html. Я только пытаюсь воссоздать внешний вид существующей формы PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...