| 

.NET C# Java Javascript Exception

3
Hi zusammen,
ich habe, mit hilfe von iTextSharp, eine TIFF in ein PDF umgewandelt und würde jetzt gerne mit DrawString, an vorgegebenen Koordinaten, einen Text darüber legen und als PDF speichern.
Ist sowas möglich ?

LG
DaTaBeRt
News:
30.08.2011
DaTaBeRt 416 1 7
Ok, ich denke ich geh das falsch an.
Ich glaub es wäre besser zuerst das TIFF zu manipulieren und den DrawString-Text hinzuzufügen und danach erst das ganze in eine PDF umwandeln.
Folglich muss ich meine Frage anders stellen!
DaTaBeRt 30.08.2011
4 Antworten
2
Hallo DaTaBeRt,

ich berücksichtige im Codebeispiel Deinen Kommentar, d.h. Manipulation des Images und anschließende PDF Umwandlung.
Dieser Code (untested) sollte in die linke obere Ecke des Bildes den Text "Some text" zeichnen.

Image myTiff = Image.FromFile(@"C:\mytiff.tif");
string bmpFilename = @"C:\mytiffasbmp.bmp";
myTiff.Save(bmpFilename , System.Drawing.Imaging.ImageFormat.Bmp);
myTiff.Dispose();
Image bmp = Image.FromFile(bmpFilename);
Graphics g = Graphics.FromImage(bmp);
g.DrawString("Some text", SystemFonts.DefaultFont, Brushes.Black, 0, 0);


EDIT: Code editiert; Um ein Graphics-Objekt von einem Tiff (indexed pixel format) erstellen zu können, muss dieses zuerst in ein anderes Format (nicht indexed pixel format) überführt werden. Hoffe, das klappt jetzt.

Viel Erfolg
Florian
30.08.2011
ffordermaier 8,4k 3 9
Danke schonmal! Werd das mal testen ;)
DaTaBeRt 30.08.2011
Super danke für die verbesserung!
DaTaBeRt 30.08.2011
Hmm ok die exception ist immer noch da, kann das daran liegen das das tiff mehrseitig ist? denn in der neu erzeugten bmp ist nur die erste seite.
DaTaBeRt 30.08.2011
1
Hier findets Du Hinweise wie Du die einzelnen Seiten aus einer mehrseitigen Tiff extrahieren kannst: http://stackoverflow.com/questions/1327821/edit-multipage-tiff-image-using-system-drawing
Wo tritt die Exception jetzt auf?
ffordermaier 30.08.2011
Danke, werd ich mir nach der mittagspause mal ansehn.
die ex. tritt hier auf :"Graphics g = Graphics.FromImage(bmp);"
DaTaBeRt 30.08.2011
1
Ok, hier der Code für PDFsharp (diesmal gleich in C#) :-)

using PdfSharp;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;

private void button1_Click(object sender, EventArgs e)
{
// Create the output document
PdfDocument outputDocument = new PdfDocument();

// Show single pages
outputDocument.PageLayout = PdfPageLayout.SinglePage;

XFont font = new XFont("Verdana", 16, XFontStyle.Bold);

PdfPage page = outputDocument.AddPage();

XGraphics gfx;
gfx = XGraphics.FromPdfPage(page);

XImage image = XImage.FromFile(@"C:\WINNT\Soap Bubbles.bmp");
gfx.DrawImage(image, 0, 0, page.Width, page.Height);

gfx.DrawString("Test-String",font,XBrushes.White,new PointF(20,20));

// Save the document...
String filename = @"C:\temp\Test.pdf";
outputDocument.Save(filename);
// ...and start a viewer.
System.Diagnostics.Process.Start(filename);
}

Gruß, Tom
30.08.2011
Metal-Frog 946 1 7
0
Hallo,
also ich finde es nicht sinnvoll, das Originalbild zu modifizieren, wenn du den drübergemalten Text nur in der PDF haben möchtest. Ich habe zwar noch nicht mit iTextSharp gearbeitet (ich benutze PDFsharp), aber ich gehe davon aus, dass das dort genauso funktioniert.

  • PDF anlegen
  • Bild malen
  • Text malen
  • fertig

Ein Beispiel für PDFsharp könnte ich zur Verfügung stellen.

Liebe Grüße, Tom
30.08.2011
Metal-Frog 946 1 7
Kannst mir ja mal zeigen ;) mal sehn ob mich das weiterbringt
DaTaBeRt 30.08.2011
1
Siehe oben :-)
Metal-Frog 30.08.2011
hmm ja leider hat, wenn ich das jetzt richtig gesehen hab, iTextSharp keine Drawing-Funktion
DaTaBeRt 30.08.2011

Stelle deine Pdf-Frage jetzt!