Avatar billede karsten_larsen Praktikant
24. februar 2007 - 17:51 Der er 11 kommentarer og
1 løsning

Flyttet kode til en sub, men får fejl

Når koden er udenfor Sub fungerer det perfekt, men så snart jeg flytter kode med billededel ind i en sub, så fungerer det ikke.

Det forstår jeg ikke! Anvender pdf komponenten fra asppdf.com


Bruger følgende script og det fungerer perfekt

    Dim DemoPage As IPdfPage = objDoc.Pages.Add(700, 1050, Missing.Value)

    Dim ImageDemo As String = "../graf/demo.gif"
    Dim Picture_Demo As IPdfImage = objDoc.OpenImage(Server.MapPath(ImageDemo), Missing.Value)
    DemoPage.Canvas.DrawImage(Picture_Demo, "x=0, y=0, ScaleX = 1, ScaleY = 1")

    Rapport(DemoPage)

og Sub ser således ud.

    Sub Rapport(ByVal Rapport_PageNumber As IPdfPage)
        Dim objPdf As IPdfManager = New PdfManager
        Dim objDocDemo As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocDemo.Fonts("Helvetica", Missing.Value)
    End Sub



Men når jeg flytter billededannelse ned i Sub´en så laves der ingen billder. Koden ser således ud:


      Dim DemoPage As IPdfPage = objDoc.Pages.Add(700, 1050, Missing.Value)
      Rapport(DemoPage)


og Sub ser så ud :

    Sub Rapport(ByVal Rapport_PageNumber As IPdfPage)
        Dim objPdf As IPdfManager = New PdfManager
        Dim objDocDemo As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocDemo.Fonts("Helvetica", Missing.Value)

        Dim ImageDemo As String = "../graf/demo.gif"
        Dim Picture_Demo As IPdfImage = objDoc.OpenImage(Server.MapPath(ImageDemo), Missing.Value)
        DemoPage.Canvas.DrawImage(Picture_Demo, "x=0, y=0, ScaleX = 1, ScaleY = 1")
    End Sub


???:-) karsten_larsen
Avatar billede dr_chaos Nybegynder
24. februar 2007 - 21:48 #1
prøv lige at vise hele din kode
Avatar billede karsten_larsen Praktikant
24. februar 2007 - 22:33 #2
Imports System.Web
Imports System.Reflection
Imports ASPPDFLib

Partial Class demo
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = "False" Then

            ' Opret dok
            Dim objPdf As IPdfManager = New PdfManager
            Dim objDoc As IPdfDocument = objPdf.CreateDocument(Missing.Value)
            Dim objFont As IPdfFont = objDoc.Fonts("Helvetica", Missing.Value)

            ' Demo forside
            Dim Forside As IPdfPage = objDoc.Pages.Add(596, 842, Missing.Value)
            Rapport_Forsiden(Forside)

            '  Her laves Image siden
            Dim DemoPage As IPdfPage = objDoc.Pages.Add(596, 842, Missing.Value)
            Dim ImageDemo As String = "../graf/pictures/logo.gif"
            Dim Picture_Demo As IPdfImage = objDoc.OpenImage(Server.MapPath(ImageDemo), Missing.Value)
            DemoPage.Canvas.DrawImage(Picture_Demo, "x=0, y=0, ScaleX = 1, ScaleY = 1")
            Rapport_Virker(DemoPage)

            '  Her laves Image siden med image i sub - her fejler det
            Dim DemoPage2 As IPdfPage = objDoc.Pages.Add(596, 842, Missing.Value)
            Rapport_Virker_Ikke(DemoPage2)

            objDoc.SaveHttp("attachment;filename=" & Now() & ".pdf", Missing.Value)
        End If


    End Sub


    Sub Rapport_Forsiden(ByVal PdfPageNumber As IPdfPage)
        Dim objPdf As IPdfManager = New PdfManager
        Dim objDocForsiden As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocForsiden.Fonts("Helvetica", Missing.Value)
        PdfPageNumber.Canvas.DrawText("DEMO", "html=true,x=180; y=480; width=596; alignment=left; size=15", objFont)
    End Sub

    Public Sub Rapport_Virker(ByVal Rapport_PageNumber As IPdfPage)
        Dim objPdf As IPdfManager = New PdfManager
        Dim objDocDemo As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocDemo.Fonts("Helvetica", Missing.Value)
        Rapport_PageNumber.Canvas.DrawText("DEMO Image", "html=true,x=180; y=480; width=596; alignment=left; size=15", objFont)
    End Sub


    Public Sub Rapport_Virker_Ikke(ByVal Rapport_PageNumber As IPdfPage)
        Dim objPdf As IPdfManager = New PdfManager
        Dim objDocDemo As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocDemo.Fonts("Helvetica", Missing.Value)

        Dim Picture_Demo As ASPPDFLib.IPdfImage = objDocDemo.OpenImage(Server.MapPath("../graf/pictures/logo.gif"), Missing.Value)
        Rapport_PageNumber.Canvas.DrawImage(Picture_Demo, "x=0, y=0, ScaleX = 1, ScaleY = 1")

        Rapport_PageNumber.Canvas.DrawText("DEMO Image 2", "html=true,x=180; y=480; width=596; alignment=left; size=15", objFont)
    End Sub
End Class
Avatar billede dr_chaos Nybegynder
24. februar 2007 - 23:23 #3
hmmm jeg må indrømme at jeg ikke kan se hvorfor det ikke skulle virke.
Måske trænger jeg bare til at sove.
Kigger lige forbi imorgen hvis ingen andre er kommet med et bud.
Avatar billede karsten_larsen Praktikant
24. februar 2007 - 23:28 #4
okay - godnat og sov godt :)
Avatar billede dr_chaos Nybegynder
25. februar 2007 - 08:47 #5
prøv med:
    Public Sub Rapport_Virker_Ikke(ByVal Rapport_PageNumber As IPdfPage)
       
        Dim Picture_Demo As ASPPDFLib.IPdfImage = objDocDemo.OpenImage(Server.MapPath("../graf/pictures/logo.gif"), Missing.Value)
        Rapport_PageNumber.Canvas.DrawImage(Picture_Demo, "x=0, y=0, ScaleX = 1, ScaleY = 1")
Dim objPdf As IPdfManager = New PdfManager
        Dim objDocDemo As IPdfDocument = objPdf.CreateDocument(Missing.Value)
        Dim objFont As IPdfFont = objDocDemo.Fonts("Helvetica", Missing.Value)


        Rapport_PageNumber.Canvas.DrawText("DEMO Image 2", "html=true,x=180; y=480; width=596; alignment=left; size=15", objFont)
    End Sub

Det burde dog ikke give noget forskel.
Jeg kan simpelthen ikke se hvad fejlen er :(
Avatar billede karsten_larsen Praktikant
25. februar 2007 - 09:05 #6
godmorgen:)

Det gør ingen forskel - giver stadig fejl når filen skal læses.
Avatar billede karsten_larsen Praktikant
25. februar 2007 - 09:18 #7
hmm - nu har jeg skrevet til Persist - de må da kende til en løsning
Avatar billede dr_chaos Nybegynder
25. februar 2007 - 09:38 #8
hvilken fejlmeddelelse får du ?
Avatar billede karsten_larsen Praktikant
25. februar 2007 - 10:13 #9
"Der opstod et problem med læsningen af dette dokument(14)" når filen åbnes direkte eller gemmes og åbnes senere med Adobe Acrobat
Avatar billede karsten_larsen Praktikant
25. februar 2007 - 10:17 #10
Hvor den pågældende side og efterfølgende vises som et meget lille kvadrat. Denne handling kan jeg også fremprovokere ved at lave fejl i selve koden f.eks. i en sub, som VS2005 ikke opdager.
Avatar billede karsten_larsen Praktikant
25. februar 2007 - 20:36 #11
dr_chaos -> vil du lave et svar, som tak for hjælp?

Fik svar fra Persist og fejlen var at objdoc skal med over som værdi i en sub

:-) karsten_larsen
Avatar billede dr_chaos Nybegynder
25. februar 2007 - 20:45 #12
ok jamen så er der en god forklaring :)
Svar :)
Vi bør nok dele.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester