打印 HasMorePages 不起作用 c#

2023-12-27

好吧,所以我一直在四处寻找(在 SO 和 Google 上),看看一个问题是否可以解决我的错误,但显然不能,所以这里是:

我正在尝试打印有时会超过一页的内容,并且我正在检查要打印的页数。检查完所有这些逻辑后,我使用HasMorePages属性来设置是否有其他页面。这是我的代码:

int currentpage = 0;
int pagesleft = 0;
private void doc_PrintPage(object sender, PrintPageEventArgs ev)
{
    ev.Graphics.Clear(Color.White);
    int numofpages = (int)Math.Ceiling((double)(numofwords / 29.0));
    numofpages = (int)Math.Ceiling((double)(numofwords / 29.0));
    currentpage = currentpage + 1;
    if(currentpage == 1)
    {
        pagesleft = numofpages;
    }
    if (numofwordsleft >= 29)
    {
        currentwords = 29;
    }
    else
    {
        currentwords = numofwordsleft;
    }
    Font f19 = new Font("Arial", (float)19);
    Font f9 = new Font("Arial", (float)9);            

    ev.Graphics.DrawString("Pages: "+numofpages.ToString()+"         Words: "+numofwords.ToString()+"     "+currentwords.ToString(), f19, Brushes.Red, 200, 300);
    ev.Graphics.DrawString("Words Left: "+numofwordsleft, f19, Brushes.Green, 200, 500);

    ev.Graphics.DrawString("Pages: "+numofpages.ToString()+"       Current Page: "+currentpage.ToString(), f19, Brushes.Blue, 200, 700);

    numofwordsleft = numofwordsleft - currentwords;
    pagesleft = pagesleft - 1;

    //currentpage++;
    //if (currentpage != numofpages && currentpage < numofpages && pagesleft > 0 && pagesleft != 0)
    if(currentpage < numofpages)
    {
        ev.HasMorePages = true;
    }
    else 
    {
        ev.HasMorePages = false;
    }
}

现在一切都正常工作,但是当我尝试打印多于一页时,它会打印 2 页。我做了一些调试并发现了这一点:

So HasMorePages等于false所以它应该只打印一页。我按下继续调试,它再次到达最后的断点。由于我在开始时清除了页面,所以我只看到了第二页(在printpreview)但是printpreview说只有 1 页,唯一显示的页面是第二页。

这里是printpreview:

对于蓝色文本,我正在这样做:

ev.Graphics.DrawString("Pages: "+numofpages.ToString()+"    Current Page: "+currenpage.ToString(), ...);

打印预览清楚地表明它在第 1 页。

很抱歉这篇文章很长,但我需要帮助。如果您可以帮助我/指出解决此问题的正确方向,请在此处发帖。

Thanks!

编辑:所以当我尝试打印 2 页时,使用:

int numofpages = Math.Ceiling(39.0 / 29.0);

它打印 3 页,但全部打印在同一页上,如图所示PrintPreview除非那不能正常工作。


try this

    int currentpage = 0;
    int pagesleft = 0;
    int numofwordsleft = 0;
    int currentwords = 0;//For testing
    int numofwords = 120; // For testing
    private void doc_PrintPage(object sender, PrintPageEventArgs ev)
    {
        ev.Graphics.Clear(Color.White);
        int numofpages = (int)Math.Ceiling((double)(numofwords / 29.0));
        numofpages = (int)Math.Ceiling((double)(numofwords / 29.0));
        currentpage = currentpage + 1;
        if (currentpage == 1)
        {
            pagesleft = numofpages;
        }
        if (numofwordsleft >= 29)
        {
            currentwords = 29;
        }
        else
        {
            currentwords = numofwordsleft;
        }
        Font f19 = new Font("Arial", (float)19);
        Font f9 = new Font("Arial", (float)9);

        ev.Graphics.DrawString("Pages: " + numofpages.ToString() + "         Words: " + numofwords.ToString() + "     " + currentwords.ToString(), f19, Brushes.Red, 200, 300);
        ev.Graphics.DrawString("Words Left: " + numofwordsleft, f19, Brushes.Green, 200, 500);

        ev.Graphics.DrawString("Pages: " + numofpages.ToString() + "       Current Page: " + currentpage.ToString(), f19, Brushes.Blue, 200, 700);

        numofwordsleft = numofwordsleft - currentwords;
        pagesleft = pagesleft - 1;

        //currentpage++;
        //if (currentpage != numofpages && currentpage < numofpages && pagesleft > 0 && pagesleft != 0)
        if (currentpage < numofpages)
        {
            ev.HasMorePages = true;
        }
        else
        {
            ev.HasMorePages = false;
        }
    }

hope this helps. This is the preview i am getting after changing number of words. Print Preview Screen Shot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印 HasMorePages 不起作用 c# 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • solve_ivp 错误:“缺少 2 个必需的位置参数:”

    我用于solve ivp的函数定义为 def ydot t y kappa4 kappa16 使用solve ivp时如下 sol solve ivp ydot 0 10 initial condition args 50 100 我收到以
  • 如何使用 Django FileFields 在模板中显示当前文件

    我有点卡住了 我已经使用 Django 一段时间了 但我实际上似乎无法找到这个东西 这很奇怪 因为它应该是一件简单的事情 我一直在谷歌上搜索 似乎找不到解决方案 这可能是因为它很简单 问题是 我有一个 ModelForm 它有一个 File
  • Excel 工作簿的 R Download.File 问题

    我正在尝试使用 R 下载 Excel 工作簿下载文件 http stat ethz ch R manual R patched library utils html download file html功能 当我手动下载文件 使用 Inte
  • POI中如何判断文件是doc还是docx

    标题可能有点令人困惑 最简单的方法必须是通过扩展名来判断 如下所示 is represents the InputStream if filePath endsWith doc WordExtractor ex new WordExtrac
  • 显示:内联表

    IE 7 不支持display inline table 其他浏览器支持 对于替代解决方案我应该做什么 火狐和 IE8 支持display inline table IE6支持display inline table class inlin
  • 从 data.frame 到 ggplot2 图例的表达式

    我想向图例条目添加一个表达式 而不直接输入图例 因为我正在循环变量 本质上我想要这样 d lt data frame x 1 10 y 1 10 f rep c 0 74 gt 75 each 5 qplot x y data d colo
  • LoopBack:如何在代码中动态创建自定义 REST 端点(即时)

    我们使用 LoopBack REST 框架来公开我们的数据库 和业务逻辑 我们需要允许客户在数据库 单租户和多租户 中创建自定义表 这些表可以通过 REST 端点进行访问 所有客户都需要使用相同的通用 生产 REST 端点 这些端点将公开在
  • Flutter 是否支持 FieldPath?

    我找不到FieldPath in the cloud firestore颤振插件 https pub dartlang org packages cloud firestore但是 我认为这是一个非常常见的工具 将是此类插件的第一个实现之一
  • NativeScript WebView在默认浏览器中打开url

    我正在尝试构建应用程序WebView以及 WebView 内 URL 上的单击 点击事件 下面的解决方案打开外部浏览器和 URL 但它也在 webview 中加载相同的 url 内容 有没有办法阻止在 webview 中加载新的 url 这
  • 运行“npm install”时保留符号链接

    如果我们这样做 npm link x 然后我们跑npm install 它将覆盖符号链接包 有没有办法跑npm install不覆盖符号链接包 就像是 npm install preserve symlinks or npm install
  • 如何防止单击锚元素内的图像时的链接行为?

    我有一个与此类似的代码 a href link html goto link page img src images edit gif alt a 现在 如果您单击文本 我希望 href 链接能够正常工作 但是如果您单击图像 它应该执行其他
  • 在 Safari 中跳转输入字段

    我正在尝试重新创建一个非常酷的占位符用户界面 http dribbble com shots 1254439 GIF Mobile Form Interaction list users只使用 HTML 和 CSS 我就差不多明白了 dem
  • Vulkan 的 VkMemoryHeapFlagBits 是否缺少值?

    在 Vulkan 规范 1 0 9 第 180 页 中 我们有以下内容 typedef struct VkMemoryHeap VkDeviceSize size VkMemoryHeapFlags flags VkMemoryHeap 和
  • C# - 值类型的引用包装器

    我想用c Pointtype 作为引用类型 它是一个结构 我想到了上课CPoint 其中将包含一个Point成员 有什么办法可以提高会员人数吗 Point担任成员Cpoint 我正在努力避免 cpoint point X cpoint po
  • SQL Server 从表中读取 csv 二进制文件

    我目前将 csv 格式的文件存储在磁盘上 然后像这样查询它们 SELECT FROM OPENROWSET BULK C myfile csv FORMATFILE C format fmt FIRSTROW 2 AS rs 其中 form
  • javascript 中计数器变量的奇怪值[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 臭名昭著的循环问题 https stackoverflow com questions 1451009 javascript infamous loop problem 由于某种
  • Django 1.9:django.core.exceptions.AppRegistryNotReady:应用程序尚未加载

    我正在尝试使用这个应用程序https github com benliles django chance https github com benliles django chance在我的应用程序中 我的 Django 版本是 1 9 我
  • 底部对齐 R 闪亮按钮

    我无法找到底部对齐的方法downloadButton with a selectizeInput i e library shiny runApp list ui shinyUI fluidPage fluidRow align botto
  • 如何在Android上像instagram一样实现视频过滤器[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要在我的 Android 应用程序中添加视频过滤器 例如Instagram 我搜索了很多 但没有找
  • 打印 HasMorePages 不起作用 c#

    好吧 所以我一直在四处寻找 在 SO 和 Google 上 看看一个问题是否可以解决我的错误 但显然不能 所以这里是 我正在尝试打印有时会超过一页的内容 并且我正在检查要打印的页数 检查完所有这些逻辑后 我使用HasMorePages属性来