我打印到装有8.5 x 8.5英寸纸张的冲击式打印机上.打印时,打印机弹出11英寸而不是8.5英寸.
PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.Unknown, element.Width, element.Height);
PrintDialog dialog = new PrintDialog();
dialog.PrintTicket.PageMediaSize = pageSize;
Console.WriteLine(dialog.PrintableAreaHeight); // 816, good!
dialog.PrintQueue = myQueue; // selected from a combobox
Console.WriteLine(dialog.PrintableAreaHeight); // 1056 :(
dialog.PrintVisual(element, description);
Run Code Online (Sandbox Code Playgroud)
使用" 如何在.NET中将Twips转换为像素? "我已经确定8.5英寸是816像素,这是我element.Width
和我的大小element.Height
.我正在设置一个新的PageMediaSize
,但这似乎没有任何效果,dialog.PrintableAreaHeight
当我在对话框上设置队列时仍然在1056结束.
如果是这样dialog.ShowDialog()
,请手动选择我的打印机,并在我的打印机的高级设置中手动查找和更改纸张尺寸,然后dialog.PrintableAreaHeight
正确反映更改.
此页面http://go4answers.webhost4life.com/Example/set-printdialogs-default-page-size-168976.aspx建议我只能设置PageMediaSize
我的打印机支持.使用GetPrintCapabilities
我的功能PrintQueue
,我看到一个包含10个左右页面大小的列表,其中没有一个是8.5 x 8.5.这与我在Windows中进入打印机高级设置时看到的列表相同.
我有LQ EPSON 300打印机
我想以打印机的默认字体打印一些数据
我认为如果我们使用c#代码打印该打印机的默认字体就可以了.
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 950, 555);
pd.PrintPage += new PrintPageEventHandler(this.FontAndLocation);
pd.Print();
private void FontAndLocation(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString(textBox1.Text.ToString(), new Font("Bookman Old Style", 18, FontStyle.Bold), Brushes.Black, 20, 95);
e.Graphics.DrawString(textBox2.Text.ToString(), new Font("Bookman Old Style", 18, FontStyle.Bold), Brushes.Black, 20, 165);
e.Graphics.DrawString(textBox3.Text.ToString(), new Font("Courier New", 18, FontStyle.Bold), Brushes.Black, 20, 265);
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过互联网搜索,但我失败了,我无法解决我的问题我写的代码不打印在草稿/点阵(打印机的默认)字体.我们可以用代码或任何能够以EPSON-LQ 300默认字体打印的代码调用打印机吗?
我正在打印HTML收据 javascript:window.print()
将其打印到喷墨打印机可以使一切都很好.但是在DOT-MATRIX打印机上,爱普生LX-300 + II的一切都与众不同.它不合适,文本不对齐.我尝试将其保存为PDF并从Adobe Reader打印PDF,方向似乎都很好.
我已经设置了页面大小并尝试调整字体大小,但仍然无法正确打印.顺便提一下,收据的大小是8.5 x 5.5英寸.
我尝试制定CSS,但未能得到正确的结果.这是CSS:
@media print {
html, body {
width: 8.5in;
height: 5.5in;
display: block;
font-family: "Calibri";
font-size: auto;
}
@page
{
size: 5.5in 8.5in;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,每当我尝试添加@page { size: 8.5in 5.5in.; size: Portrait; }
打印的纸张时都是横向的.
我怎样才能把事情搞定?
编辑: 我试过了
@page {
size: 5.5in 8.5in;
}
Run Code Online (Sandbox Code Playgroud)
但它在Landscape上打印页面......
我有一台点阵打印机LX-300通过网络连接到我的电脑.如何使用Python将带有ESCP字符的原始字符串直接发送到我的打印机?
计算机通过另一台计算机连接到打印机.我需要发送原始字符串,因为LX-300图像打印结果模糊.
对于项目的需要,我想在特定位置打印LPT1,这将在点阵打印机中打印文档,我应该在他们应该去的地方打印值.我真的很讨厌回去,我不知道从哪里开始.Internet没有关于使用C#在LPT端口中打印的具体信息,尤其是在打印时如何在特定位置发送值.有什么好的例子吗?这个教程?将是一个生命救世主.
我需要将字符串发送到点阵打印机,该打印机使用 Epson FX 仿真来打印简单的条形码。我可以通过手动将控制代码键入字符串来打印它。
这是手册中的示例:https ://files.support.epson.com/pdf/general/escp2ref.pdf#page=327
我手动将数据输入到字符串中:
var barcode = "\x1B\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01\x41\x32\x33\x40\x41\x21\x43\x44\x5B\x5D";
然后使用“qz托盘”模块发送它。
效果很好,打印机会通过正确打印所示代码来做出响应。现在我的斗争实际上是给它我自己的数据并更改最后 10 个字符串代码,我尝试了很多方法来正确编码 10 个字符的字符串,但到目前为止没有任何效果。JavaScript 有没有办法做到这一点?
编辑:
正在做:
var barcode = "\x1B\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01" + "1234567890";
这是我首先尝试的事情之一,结果导致打印机闲置并且根本不对命令做出反应。事实上,我实际上发现第一个命令 1B 不起作用,我必须使用 发送它String.fromCharCode(27)
。打印条形码的完整工作命令变为:
var barcode = String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01\x41\x32\x33\x40\x41\x21\x43\x44\x5B\x5D";
它会像手册中一样打印数据。以某种方式替换转义的十六进制数据"1234567890"
只会破坏它,并且打印机什么也不做。
编辑2,解决方案:
事实证明,当我将数据发送到打印机时,我无意中跳过了负责设置条形码数据类型的控制代码,在这种情况下它将是A。没有它,打印机将闲置。工作代码:
String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x0A\x00\x01" + "A" + "1234567890";
我有一台Epson LX 300 点阵打印机。
我正在使用 PHP 创建 HTML 收据,并使用 Javascriptwindow.print()
来要求浏览器打印网页。不幸的是,打印机无法处理格式化的文本。字体大小不正确,区域重叠等。
打印在记事本和写字板中生成的正常文本不会导致任何问题。
我能做些什么来解决这个问题?