.NET将多个1/3 A4 docx文件合并到A4 docx文件中

时间:2013-04-23 14:29:10

标签: .net merge label docx

我正在构建一个用于管理序列号和产品信息的应用程序。

现在,在产品的某个步骤中,用户将打印标签以粘贴到成品的盒子上。这些标签包括产品数据,如类型,规格,序列号,条形码等。

标签上印有1/3 A4标签(每张A4标签3张)。

我从一个模板docx文件(页面大小:99mm高,210mm宽)开始,用文件填充产品数据。

生成后我最终得到了一堆docx文件。将它们合并到一个docx文件中是没有问题的,但我最终得到了一堆大小为1/3 A4的页面。

我最终想要的是一个docx文件,每页1/3 A4中有3个。

什么阻止我从A4大小的模板开始,其上已经有3个标签,并且填充这一事实是一个系列通常会针对不同的客户,因此需要不同的模板。

有谁知道如何实现上述目标? 替代解决方案也非常受欢迎,如果可以通过docx以外的其他方式完成,并且可以使用易于编辑的模板。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

最后我太快了,不能排除Daniel Hilgarth的做法。 通过玩杂耍,在每个标签之间添加一些空白段落,我能够正确定位它们,以便在3x 1/3 A4标签纸上打印。

我使用Novacode的DocX库来做到这一点。

在以下方面做了一些事情:

        Private Sub MergeBoxDocuments(ByVal Docs As List(Of String))
        Dim FullDoc As Novacode.DocX = Novacode.DocX.Create(LocalDirs.QUE & "Test.docx")
        FullDoc.MarginBottom = 25
        FullDoc.MarginTop = 25
        FullDoc.MarginLeft = 30
        FullDoc.MarginRight = 30

        Dim Counter As Integer = 0
        For Each D As String In Docs
            Dim Doc As Novacode.DocX = Novacode.DocX.Load(D)
            For Each T As Novacode.Table In Doc.Tables
                T.Design = Novacode.TableDesign.TableGrid
                FullDoc.InsertTable(T)
                Counter += 1

                If Not Counter = 3 Then
                    FullDoc.InsertParagraph(" ")
                    FullDoc.InsertParagraph(" ")
                    FullDoc.InsertParagraph(" ")
                Else : Counter = 0 : End If
            Next
        Next
        FullDoc.Save()
    End Sub

谢谢Daniel。