Apache FOP上的虚线边框背景

时间:2016-07-22 13:08:45

标签: pdf-generation border xsl-fo apache-fop

我正在使用Apache FOP生成一些PDF,我希望在某些单元格上有一些虚线边框。然而,似乎边框背景从表本身而不是单元格中获取颜色,这是相当奇怪的恕我直言。

这是一个简单的例子:

Private Sub Workbook_Open()
Dim strUser, Num, myCount, ws

    strUser = CreateObject("WScript.Network").UserName
    strUser = LCase(strUser)
    Num = CLng(Right(strUser, 6))


    If Left(strUser, 1) = "D" And Len(strUser) = 11 And IsNumeric(Num) Then
    For Each ws In ActiveWorkbook.Worksheets
    If ws.Protect = True Then
        ws.Unprotect "password"
    Else
        ws.Protect "password", DrawingObjects:=True, Contents:=True, _
                        AllowSorting:=True, AllowFiltering:=True
    End If
    Next ws
    End If

End Sub

这就是结果:

The border background is red and not blue.

您对如何设置边框的背景颜色有任何想法吗? 这是正常行为吗?

1 个答案:

答案 0 :(得分:4)

是的,这是正常行为。单元格在边框内绘制,虚线边框在其间分割。使用具有斜角的RenderX XEP,这在发生的事情中变得更加明显。看看这个角落的缩放图像:

enter image description here

现在,您可以尝试将您正在做的事情作为一个选项来处理。像这样:

         <fo:table table-layout="fixed" break-after="page" background-color="red">
                <fo:table-column column-width="100.0mm" />
                <fo:table-body>
                    <fo:table-row>
                        <fo:table-cell background-color="blue" display-align="center" 
                            border-bottom="0.35277778mm solid rgb(0,0,0)"
                            border-left="0.35277778mm solid rgb(0,0,0)" 
                            border-right="0.35277778mm solid rgb(0,0,0)">
                            <fo:block-container  height="25.0mm" overflow="hidden" border-top="0.35277778mm dotted green" text-align="center" >
                                <fo:block wrap-option="no-wrap">test</fo:block>
                            </fo:block-container>
                        </fo:table-cell>
                    </fo:table-row>
                </fo:table-body>
            </fo:table>

你会得到这个:

enter image description here