c# - 如何从大字符串值创建多页 Tiff 文件

标签 c# text image-manipulation tiff

我有以下代码,它接受一个字符串并创建一个 Tiff 文件。

string sFileData = "Hello World";
string sFileName = "Bitmap.bmp";

Font oFont = new Font("Arial", 11, FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);
var sz = GraphicsHelper.MeasureString(sFileData, oFont);

var oBitmap = new Bitmap((int)sz.Width, (int)sz.Height);

using (Graphics oGraphics = Graphics.FromImage(oBitmap)) {
    oGraphics.Clear(Color.White);
    oGraphics.DrawString(sFileData, oFont, new SolidBrush(System.Drawing.Color.Black), 0, 0);
    oGraphics.Flush();

}

oBitmap.Save(sFileName, System.Drawing.Imaging.ImageFormat.Tiff);

public static class GraphicsHelper {
    public static SizeF MeasureString(string s, Font font) {
        SizeF result;
        using (var image = new Bitmap(1, 1)) {
            using (var g = Graphics.FromImage(image)) {
                result = g.MeasureString(s, font);
            }
        }
     return result;
    }
}

当字符串的宽度和高度不超过 A4 页面的大小时,此方法工作正常。但是我现在遇到的问题是,我需要能够将此 Tiff 打印到打印机。

因此我需要一种方法将任何文本换行到 A4 页面的宽度,如果高度超过 A4 页面的高度,那么文本需要转移到下一页。

任何人都可以提供我如何实现这一目标的示例吗?

最佳答案

您已经在测量字符串并且知道 A4 的大小,所以我假设您的问题是您不知道如何创建包含多个页面的 TIFF。

如果是这样,请查看类似问题的答案:

https://stackoverflow.com/a/7675996/3937

结果是使用 Bitmap.SaveAdd() 将图像添加到现有的 TIFF

关于c# - 如何从大字符串值创建多页 Tiff 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290735/

相关文章:

c# - 为什么dsofile.dll还需要Office安装?

linux - 如何搜索 'String' 并立即返回值?

正则表达式 - 如何删除前 10 行/和最后 10 行

c++ - Magick++ 背景渐变

iphone - 将 NSData 插入 iPhone 上的 SQLite

PHP GD imagejpeg : output file size is bigger size than original

C#:如何对现有对象的静态成员进行方法调用

c# - += 委托(delegate)运算符

c# - 从数据库中获取 -1 值

Css div 文本移动