使用 Postscript,我无法在一页上打印超过 27 个条形码我需要 36 个

问题描述

我们是一家大型零售企业,所有价格标签都使用 Postscript。我将这 36 页的标签设计为横向和纵向(水平和垂直),并具有完全独特的代码。但是一旦我达到 27 个条形码,就无法打印整个页面。所以我随机删除了其中的 9 个(无论从哪里来)并打印页面。问题是我们需要 36 个条形码。示例图片包含 8 1/2 x 11" 页面的一部分。每个标签的顶部是简短说明,然后是价格,底部是带有条形码的 SKU。

Price Tag Sheet Sample

以下是可以在任何 Postscript 打印机上运行的 Postscript 代码。请注意,在第 841 行,第一个条码代码块用 %% 注释掉。取消注释它们会导致页面不打印:

library(shiny)

fun1 <- function(x) {
    runif(x)
}

fun2 <- function(x) {
    hist(x)
}

ui <- fluidPage(
    actionButton("go","Go"),numericInput("n","n",50),plotOutput("plot")
)

server <- function(input,output) {
    
    randomVals <- eventReactive(input$go,{
        fun1(input$n)
    })
    
    output$plot <- renderPlot({
        fun2(randomVals())
    })
}


shinyApp(ui,server)

62 -20 移动到 (00) 显示 31 -35 移动到 1.25 2.25 比例 (199) 秀 1 1 规模 保存 8 /Helvetica 字体 15 -23 移动到 1.25 .5 刻度 (110362675) 秀 %%/Code128-Regular findfont 46 scalefont setfont %%5 -55 移动到 %%g保存 %%.6 .2 比例 %%(í110782135W¿) 显示 商店 显示页面

解决方法

这听起来像是内存问题。您可以尝试在每个代码周围或在它们的组周围添加 save ... restore(可能像列)。

另请注意,不需要调用 initgraphics。它在每个页面的开头被隐式调用。由于您只是在执行 translatescale,因此您可以使用 gsave ... grestorematrix defaultmatrix setmatrix 进行重置(不过,考虑到可能的内存问题,最好获取默认值矩阵 /default matrix defaultmatrix def 并使用它来重置 default setmatrix)。

此外,您的字体设置代码可以简化为使用 selectfont,假设是级别 2(或更高)的 PostScript 打印机。如果它是 1 级打印机,那么这会双重暗示内存问题,因为直到 2 级才添加垃圾收集。

,

我没有深入研究,但内存消耗听起来很奇怪。 编写一个更好的错误报告器是可能的,但我马上发现的一件事是我可以计算 107 gsave,但只能计算 71 grestore。它们都正确配对了吗?