Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修复在c#中打印内容时页面溢出的文本

如何修复在c#中打印内容时页面溢出的文本
EN

Stack Overflow用户
提问于 2017-02-05 16:42:03
回答 2查看 93关注 0票数 2

我正在试着用c#写一张要打印的便条。一些文本从论文中溢出,如下所示:

这是我用来写这段代码的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        /*A note with all the order details is printed for the kitchen staff
         */

        e.Graphics.DrawString("Daddy John’s restaurant", new Font("Forte", 25, FontStyle.Bold), Brushes.Black, new Point(200, 30));
        e.Graphics.DrawString("Kitchen Staff Note", new Font("Arial", 12, FontStyle.Bold), Brushes.Black, new Point(200, 70));
        e.Graphics.DrawString("Order taken by: " + dataTransferToOtherForms.LoginDetails.UserName, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, new Point(200, 100));
        e.Graphics.DrawString("Order belongs to table: " + dataTransferToOtherForms.TableName, new Font("Arial", 12, FontStyle.Bold), Brushes.Black, new Point(200, 125));
        e.Graphics.DrawString("-------------" + DateTime.Now, new Font("Courier", 12, FontStyle.Bold), Brushes.Black, new Point(25, 150));

        //Displaying Date Time on the note
        e.Graphics.DrawString("Ordered  On: " + DateTime.Now, new Font("Courier", 12, FontStyle.Bold), Brushes.Black, new Point(25, 200));

        //Constants for the products
        string font = "Arial";
        int ycord = 300;
        int xcord = 25;
        //
        foreach (ProductSelected product in productsObjList)
        {
            string prodQnty = product.QuantityOrdered.ToString().PadRight(50);
            string prodDesc = product.Description.PadRight(100);
            string prodPrice = "£" + product.Price.ToString();
            string prodLineQntyDescPrice = prodQnty + prodDesc + prodPrice;

            //Displaying the Quantity + decription + price of a product.
            e.Graphics.DrawString(prodLineQntyDescPrice, new Font(font, 12, FontStyle.Regular), Brushes.Black, new Point(xcord, ycord));

            ycord = ycord + 20;
        }

        //Adding you know
        ycord = ycord + 40;

        //displaying total price of receipt.
        e.Graphics.DrawString("Total to pay:".PadRight(30) + Convert.ToString(transactionTot), new Font("Arial", 12, FontStyle.Bold), Brushes.Black, new Point(xcord, ycord));

    }

我如何修复图片中红色圆圈的价格,使其不溢出并对齐。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-05 16:49:49

页面左边的数字不能使用PadRight(100),因为中间的列和数据不一样。最好为它们的起点设置一个固定的宽度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string prodQnty = product.QuantityOrdered.ToString().PadRight(50);
string prodDesc = product.Description.PadRight(110 - product.Description.Length);
票数 -1
EN

Stack Overflow用户

发布于 2017-02-05 17:16:28

因为你打印的是数字和文本,所以如果打印的数字是右对齐的,而描述是左对齐的,通常会更“吸引人”。

除了填充,你也可以使用制表符,但是使用左对齐和右对齐就有点困难了。

就我个人而言,我将分别为数量、描述和总行项目价格以及右、左和右对齐定义三个矩形。

你可以在MSDN上找到一个例子:https://msdn.microsoft.com/en-us/library/332kzs7c(v=vs.110).aspx

希望这对你有所帮助,并祝你编码愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42054600

复制
相关文章
SSRF 从入门到批量找漏洞
如下是 example.com 去请求 http://google.com 的流程
信安之路
2019/03/18
3.9K0
SSRF 从入门到批量找漏洞
检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)
您可以使用基础kIsWeb常量检查您的 Flutter 应用程序是否在 Web 浏览器上运行。
徐建国
2022/03/30
1.7K0
检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)
[C#] 判断IP端口是否开启
科控物联
2023/10/01
4390
[C#] 判断IP端口是否开启
在AWS云上的SAP
虽然最近亚马逊在迁离Oracle的数据库,使用Aurora PostgreSQL导致Prime Day促销日出现故障,但这似乎并不影响Amazon Aurora 数据库的推进,并且亚马逊一直在说Amazon Aurora兼容MySQL和PostgreSQL,是一种将数据库迁移到云的优秀工具。可见其要脱离Oracle的决心。而SAP也做出了同样的事情,在以前的SAP ERP系统里,SAP一直使用着别人的数据库,比如Oracle,后来SAP推出了HANA内存数据库,在S/4 HANA系列版本中,成功的使用了自己研发的数据库。可以看出这两家企业都想离开Oracle,所以合作是必然的事。
matinal
2019/01/04
2.3K0
在AWS云上的SAP
Spark 在Yarn上运行Spark应用程序
在 YARN 中,每个应用程序实例都有一个 ApplicationMaster 进程,该进程是为该应用程序启动的第一个容器。应用程序负责从 ResourceManager 上请求资源。一旦分配了资源,应用程序将指示 NodeManagers 启动容器。ApplicationMasters 消除了对活跃客户端的依赖:启动应用程序的进程可以终止,并且从在集群上由 YARN 管理的进程继续协作运行。
smartsi
2019/08/07
1.9K0
在 WASI 上运行 .NET 7 应用程序
WASI代表 WebAssembly 系统接口,WASI 让沙盒化的 WebAssembly 应用程序通过一系列类似 POSIX 的函数访问底层操作系统,允许独立于浏览器运行 WebAssembly 代码。这是一个高度实验性的项目,但同时也是一个非常有趣的项目,并且有可能为行业的大规模编程范式转变做出贡献,使 WebAssembly 真正无处不在。
张善友
2022/04/28
1.4K0
在 WASI 上运行 .NET 7 应用程序
ES的IP白名单
参考官方文档设置ES的IP白名单 https://www.elastic.co/guide/en/elasticsearch/reference/current/ip-filtering.html
程裕强
2021/08/06
3.5K0
Java代码判断ip、端口是否可用
使用的是java自带的Socket类进行检测端口号是否可用,两个代码,一个是检测的工具类,另一个是调用工具类传递相关的的参数;
ha_lydms
2023/08/09
5280
Java代码判断ip、端口是否可用
一文拿下SSRF攻击利用及绕过保护机制
断断续续地继续漏洞之旅,这次讨论一下一个常见web漏洞:SSRF,浅析一下它是如何导致攻击者进入网络,以及如何发现它并且利用。
字节脉搏实验室
2020/07/24
5.1K0
Anbox:在 Linux 上运行 Android 应用程序的简单方式
Anbox 是 “Android in a box” 的缩写。Anbox 是一个基于容器的方法,可以在普通的 GNU/Linux 系统上启动完整的 Android 系统。
用户8639654
2021/09/23
5.2K0
ping不可以检查端口是否开放,telnet可以检查端口开放
1、ping ping命令工作在OSI参考模型的第三层-网络层。 ping命令会发送一个数据包到目的主机,然后等待从目的主机接收回复数据包,当目的主机接收到这个数据包时,为源主机发送回复数据包,这个测试命令可以帮助网络管理者测试到达目的主机的网络是否连接。 ping无法检查系统端口是否开放。 2、telnet Telnet是位于OSI模型的第7层---应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程
用户1220053
2018/05/30
5.8K0
java判断ip和端口是否通信正常
package com.client; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.UnknownHostException; public class TestIpPort { public static void main(String[] args) {
JQ实验室
2022/02/10
1.5K0
Python 扫描IP段 指定端口是否开放
Python 扫描IP段 指定端口是否开放 TCP21.py  #!/usr/local/bin/python -- coding: UTF-8 -- # # qq:316118740 BLOG:http://hi.baidu.com/alalmn Python 扫描IP段 指定端口是否开放 刚学写的不好请大家见谅 # import socket import threading,time socket.setdefaulttimeout(10) #设置了全局默认超时时间 查看IP端口是否开放 clas
大师级码师
2021/11/02
6490
AWS Lambda 将废弃 Go 运行时
AWS Lambda 宣布将废弃 go1.x 运行时,仅在 Amazon Linux 2 运行时中支持 Go。该项声明以及年底前需要迁移至定制的 provided.al2 运行时引起了 Go 社区的关注。
深度学习与Python
2023/09/19
1750
AWS Lambda 将废弃 Go 运行时
Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己。然而 Windows 操作系统允许一个应用程序在运行期间修改自己的名称甚至移动自己到另一个文件夹中。利用这一点,我们可以很简单直接地做程序的 OTA 自动更新。
walterlv
2023/10/21
6460
Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
【分享】在MPSoC上运行基于eglfs_kms的QT应用程序
Xilinx为MPSoC支持4种libMali的backend: X11, Wayland/GBM, Fbdev, Headless-EGL.
hankfu
2020/12/16
5.8K0
linux使用DenyHosts阻止SSH服务器攻击(暴力破解)
DenyHosts 是一个开源且免费的基于日志的入侵防御安全程序. 它旨在通过阻止发起方来监视和分析 SSH 服务器日志中的无效登录尝试、基于字典的攻击和暴力攻击。IP 通过添加条目到地址 /etc/hosts.deny 服务器上的文件,并防止 IP 地址进行任何进一步的此类登录尝试。 如何在Linux中安装DenyHosts 默认情况下 DenyHosts Linux 系统中不包含该工具,使用以下yum 命令安装软件包。 # yum install -y denyhosts denyhosts配置文件说
入门笔记
2022/06/02
7480
什么是服务器端请求伪造 (SSRF)?
本文翻译http://acunetix.com/blog/articles/server-side-request-forgery-vulnerability/
黑伞安全
2022/01/26
1.6K0
什么是服务器端请求伪造 (SSRF)?
点击加载更多

相似问题

按Asc和Desc日期进行排序

14

动态asc desc排序

11

按asc和desc排序

10

如何根据ASC或DESC日期对表进行排序?

21

按日期排序ASC,但DESC在集团内

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文