Hallo zusammen,
ich habe in einer Activity eine Grafik erzeugt und möchte diese Grafik in ein PDF-Dokument übernehmen.
Ein kompletten Screenshot kann ich erstellen als *.png-File mit folgendem Code :
' Take a screenshot.
Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.Now
dt = DateTime.Date(now) ' e.g.: "110812150355" is Aug.12, 2011, 3:03:55 p.m.
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Activity.Width, Activity.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)
Dim Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
Beim Versuch, diese png-Datei in ein PDF einzubringen mit
'Grafik ausgeben
Dim test As Bitmap
test.Initialize(File.DirRootExternal,dt & ".png")
PDFWriter1.addImage2(50, 400, 400, 300, test)
wird dies auch ohne Fehler akzeptiert.
Abgespeichert habe ich mit
PDFWriter1.outputToFile(File.DirRootExternal,"Test-" & ".pdf",PDFContent,"Windows-1252")
Beim Öffnen des PDF wird jedoch eine Fehlermeldung ausgegeben, dass die Datei beschädigt ist.
Eine PDF ohne Grafik wird ordnungsgemäß gespeichert und kann geöffnet werden.
Meine Fragen :
1. Gibt es eine Möglichkeit nur einen Teil des Bildschirms als Bitmap abzuspeichern ?
2. Was mache ich beim Abspeichern falsch ?
Danke schon mal im voraus.
Gruß strupp01
ich habe in einer Activity eine Grafik erzeugt und möchte diese Grafik in ein PDF-Dokument übernehmen.
Ein kompletten Screenshot kann ich erstellen als *.png-File mit folgendem Code :
' Take a screenshot.
Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.Now
dt = DateTime.Date(now) ' e.g.: "110812150355" is Aug.12, 2011, 3:03:55 p.m.
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Activity.Width, Activity.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)
Dim Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
Beim Versuch, diese png-Datei in ein PDF einzubringen mit
'Grafik ausgeben
Dim test As Bitmap
test.Initialize(File.DirRootExternal,dt & ".png")
PDFWriter1.addImage2(50, 400, 400, 300, test)
wird dies auch ohne Fehler akzeptiert.
Abgespeichert habe ich mit
PDFWriter1.outputToFile(File.DirRootExternal,"Test-" & ".pdf",PDFContent,"Windows-1252")
Beim Öffnen des PDF wird jedoch eine Fehlermeldung ausgegeben, dass die Datei beschädigt ist.
Eine PDF ohne Grafik wird ordnungsgemäß gespeichert und kann geöffnet werden.
Meine Fragen :
1. Gibt es eine Möglichkeit nur einen Teil des Bildschirms als Bitmap abzuspeichern ?
2. Was mache ich beim Abspeichern falsch ?
Danke schon mal im voraus.
Gruß strupp01