2014-01-22 5 views
3

У меня есть следующий код, который берет строку и создает файл 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; 
    } 
} 

Это прекрасно работает, когда ширина и высота строки не превышают размер страницы формата А4. Однако проблема, которую я сейчас имею, заключается в том, что мне нужно иметь возможность печатать этот Tiff на принтере.

Поэтому мне нужен способ обертывания любого текста по ширине страницы формата А4, а если высота превышает высоту страницы формата А4, текст должен быть перенесен на следующую страницу.

Может ли кто-нибудь предложить какие-либо примеры того, как я могу это достичь?

ответ

1

Вы уже измеряете строку и знаете размер A4, поэтому я предполагаю, что ваша проблема в том, что вы не знаете, как создать TIFF с несколькими страницами в нем.

Если да, то посмотрите на этот ответ на подобный вопрос:

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

Развязка является использование Bitmap.SaveAdd() для добавления изображений в существующий TIFF

Смежные вопросы