Avatar billede bumle90 Nybegynder
21. juli 2004 - 14:21 Der er 82 kommentarer og
2 løsninger

At sende pdf over http

Jeg har en pdf-fil jeg har genereret on the fly, som jeg så gerne vil sende ud til klienten.
Hvilken stream skal jeg da bruge?
Se evt. her for yderligere info:
http://www.eksperten.dk/spm/521266
Avatar billede snepnet Nybegynder
21. juli 2004 - 14:24 #1
Du behøver ikke streame... Du kan bare linke til den.
Brugeren skal under alle omstændigheder have en reader installeret - Så klarer de fleste browsere resten.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 14:26 #2
Okay, men grunden til jeg vil streame er fordi at det ikke skal være muligt at tilgå pdf-filen direkte medmindre man er logget ind osv.
Desuden kommer der til at være ret mange pdf-filer, så det ville være lækkert hvis den bare blev oprettet og streamet ud til klienten og færdig arbejde
Avatar billede arne_v Ekspert
21. juli 2004 - 14:27 #3
Det er 2 helt forskellige approaches:
  - gem fil på disk og generer A HREF link til den
  - lad ASP.NET side returnere PDF

Hvis du vil det sidste skal du vel sætte content type og så bare
outputte data (HttpResponse har en OutputStream property).
Avatar billede bumle90 Nybegynder
21. juli 2004 - 14:38 #4
Prøvede mig lige frem med dette, men det er vidst ikke den korrekte writer. Så er det nu jeg godt kunne tænke mig det var java...hvor jeg har lidt bedre overblik over de forskellige readers/writers :) :

            Document d = new Document();

            PdfWriter p = PdfWriter.getInstance(d, new FileStream(@"localhost/pdftest.pdf", FileMode.Create));
           
            System.Web.HttpResponse bsd=new HttpResponse(p);
            bsd.ContentType="application/pdf";
            d.Open();

            d.Add(new Paragraph("hej der"));

            d.Close();
Avatar billede arne_v Ekspert
21. juli 2004 - 14:44 #5
Du skal vel ikke oprette en HttpResponse - sådan en har du vel ????
Avatar billede bumle90 Nybegynder
21. juli 2004 - 14:47 #6
ja det har du ret i :)
Hvor får jeg den fra?
Avatar billede arne_v Ekspert
21. juli 2004 - 14:50 #7
Har du ikke en variabel ved navn Response med so ein ding ?
Avatar billede bumle90 Nybegynder
21. juli 2004 - 14:57 #8
johhh efter gennemrodning af masser af dropdownbokse i VS.net har jeg fundet følgende. Nu mangler jeg bare at assigne p til mit output, så det er den der skriver
PdfWriter p = PdfWriter.getInstance(d, new FileStream(@"localhost/pdftest.pdf", FileMode.Create));
            this.Page.Response.ContentType="application/pdf";
            this.Page.Response.OutputStream.<---Her ved jeg ikke helt hvad jeg skal skrive endnu
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:00 #9
aha, nu fandt jeg vidst ud af det :) Fik lige en ide
Nu gør jeg følgende:

pdflabel.Text="hej";
           
           
            Document d = new Document();

            this.Page.Response.ContentType="application/pdf";
            PdfWriter p = PdfWriter.getInstance(d, this.Page.Response.OutputStream);
           
           
           
            d.Open();

            d.Add(new Paragraph("hej der"));

            d.Close();
Avatar billede arne_v Ekspert
21. juli 2004 - 15:00 #10
:-)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:01 #11
Men, nu kommer jeg tilbage til mit gamle problem:
File or assembly name ICSharpCode.SharpZipLib, or one of its dependencies, was not found.

Jeg kan åbenbart ikke bruge itext før jeg har det SharpZipLib der. Hvad gør jeg nu?
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:02 #12
Det har jeg svaret på i "det gamle spørgsmål" her :
http://www.eksperten.dk/spm/521266
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:05 #13
yepper :)
Har added referencen nu, men får følgende fejl

The located assembly's manifest definition with name 'ICSharpCode.SharpZipLib' does not match the assembly reference.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:10 #14
Hvad gør jeg ved det?
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:13 #15
Hmmm... det er lidt sært synes jeg.
Er det den jeg henvist dig til du har downloaded, og først efterfølgende tilføjet en reference til ?
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:15 #16
hmmm ja, den har jeg tilføjet reference til, og så har jeg ydermere hentet denne ned i desperation lavet ereference til, hvilket ikke har hjulpet mig det store:
http://belnet.dl.sourceforge.net/sourceforge/sharpdevelop/080sharpziplib.zip
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:15 #17
Virker det hos dig da?
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:16 #18
Nej - det virker faktisk heller ikke med den ny.

Jeg ser lige om jeg kan finde den anden til dig... Den virker her hos mig.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:17 #19
Du er en perle hvis du finder noget :)
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:19 #20
Har du en email - så kan jeg lige sende den til dig. Altså dll-en.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:42 #21
bsd@force.dk kan du sende den til :)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:44 #22
Hvor har du fundet den dll henne?
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:45 #23
Forresten er du nok lige nødt til at omdøbe dll til noget andet da den ellers bliver sorteret fra af mailserveren...
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:46 #24
Hehe... for sent :o)
Jeg sender den lige igen som en zipper.
Avatar billede snepnet Nybegynder
21. juli 2004 - 15:49 #25
Jeg tror egentlig den jeg har fulgte med noget ByteFx, men jeg er ikke helt sikker.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:55 #26
hm, fra asken til ilden...
Nu fik jeg følgende:
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Access is denied: 'itextsharp'.

Source Error:


Line 196:                <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Line 197:                <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Line 198:                <add assembly="*"/>
Line 199:            </assemblies>
Line 200:        </compilation>
Avatar billede bumle90 Nybegynder
21. juli 2004 - 15:58 #27
okay...nu kom der ihvertfald ingen fejl :)
Fjernede alle referencer og tilføjede dem igen
Avatar billede bumle90 Nybegynder
21. juli 2004 - 16:01 #28
så nu kører det....pånær at når jeg trykker på knappen vil den hente aspx filen og ikke pdf-dokumentet ned.....
Det er jo selvfølgelig en fejl 40 :P Men kan ikke lige helt gennemskue det...Kunne jeg få lov at stille dette spørgsmål med :)

Jeg har følgende kode på min button event:

private void subknap_Click(object sender, System.EventArgs e)
        {
            pdflabel.Text="hej";
           
           
            Document d = new Document();

            this.Page.Response.ContentType="application/pdf";
            PdfWriter p = PdfWriter.getInstance(d, this.Page.Response.OutputStream);
           
           
           
            d.Open();

            d.Add(new Paragraph("hej der"));

            d.Close();
}
Avatar billede snepnet Nybegynder
21. juli 2004 - 16:01 #29
Super :o)
Håber det ruller så.
Mvh
Avatar billede snepnet Nybegynder
21. juli 2004 - 16:04 #30
Ærgeligt kryds der lige kom der :o)
Avatar billede snepnet Nybegynder
21. juli 2004 - 16:05 #31
Hvis du bare streamer filen du vil det for brugeren virke som om han bliver bedt om at download aspx-filen.
Det skulle meget gerne være pdf-filen der kommer ned, men det bliver med det filnavn som brugeren har besøgt.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 16:08 #32
satme så :P
Der kan man bare se.....Er der ikke mulighed for at ændre det evt.?
Avatar billede bumle90 Nybegynder
21. juli 2004 - 16:09 #33
Altså så man kan bestemme navnet der skal stå...ellers bliver brugeren måske en smule forvirret :)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 16:21 #34
Det ser heller ikke ud til man kan åbne pdf-filen i browseren når den bliver streamet på den måde....
Man er nødt til at gemme den på disken først...er det korrekt?
Avatar billede snepnet Nybegynder
21. juli 2004 - 16:28 #35
Jeps - jeg ved ikke om du kan trixe det, men jeg har lige fået en idé som jeg lige vil prøve af.
Er det planen at du vil gemme alle de pdf-er der genereres, eller skal de bare slettes igen ?
Avatar billede bumle90 Nybegynder
21. juli 2004 - 16:33 #36
Jahhh altså de skal jo bare slettes...Så man kunne selvfølgelig gemme pdf'en kort på disken....og så skrive filen ud til klienten...Men kommer det ikke til at tage længere tid?
Lad os sige hver bruger forespørger på en pdf, og de får alle kort lavet en fil på disken der derefter sendes til klienten....Det belaster vel en del...Eller du har måske en anden snedig plan? :D
Avatar billede snepnet Nybegynder
21. juli 2004 - 16:36 #37
jeg synes helt klart det virker som det letteste at oprette dem på disk midlertidigt - give brugeren en almindeligt link ud i browseren, og så slette efterfølgende.
Jeg ved ikke om jeg har en snedig plan, men jeg ville lige prøve at se om man kunne fikse det andet på en snild måde.
Jeg vender tilbage omkring det.
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:04 #38
okay...jeg er nok lidt sat....Nu kommer den der configuration fejl der pludeslig igen...ud af det blå...Hvad kan det skyldes...Her er hele fejlside:
(Jeg kan godt compile, det er først når jeg kører websiden dette bliver udskrevet i browseren)


Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Access is denied: 'itextsharp'.

Source Error:


Line 196:                <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Line 197:                <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Line 198:                <add assembly="*"/>
Line 199:            </assemblies>
Line 200:        </compilation>


Source File: c:\winnt\microsoft.net\framework\v1.1.4322\Config\machine.config    Line: 198

Assembly Load Trace: The following information can be helpful to determine why the assembly 'itextsharp' could not be loaded.


=== Pre-bind state information ===
LOG: DisplayName = itextsharp
(Partial)
LOG: Appbase = file:///c:/inetpub/wwwroot/WebApplication2
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===

LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: itextsharp
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/webapplication2/37f71cbe/939c5907/itextsharp.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/webapplication2/37f71cbe/939c5907/itextsharp/itextsharp.DLL.
LOG: Attempting download of new URL file:///c:/inetpub/wwwroot/WebApplication2/bin/itextsharp.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: itextsharp, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:09 #39
Det er set før... Det har ikke nødvendigvis noget med dit program at gøre.
Prøv at google lidt på .NET din fejl og machine.config - der er en hel del der har prøvet det.
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:10 #40
Men bortset fra det så har jeg fikset det andet der.... Det er en lille smule langhåret, men det lader til at virke.
Er du frisk ?
Avatar billede arne_v Ekspert
21. juli 2004 - 17:10 #41
Hvis IIS vil downloade .aspx filer fremfor at køre dem, så er der noget alvorligt
galt i config.

Hvis den vil downloade PDF filen godt nok, men bare bruger filnavnet
fra URL'en, så kan du styre det.

Response.AddHeader("Content-Disposition", "attachment; filename=foobar.pdf");

Hvis de alligevel skal slettes igen, så vil jeg sige at det er pænest slet
ikke at gemme dem på disk.
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:13 #42
Helt enig med arne... Jeg prøver lige den med Content-Disposition her. Det er en hel del enklere end det jeg har lavet :o)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:13 #43
ja...kom med det snepnet...eeeeeeelsker langhårede løsninger :D
Det er jo det vi får penge for ik sandt hehe
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:23 #44
Hehe... Du kan godt se den. Men det kræver en hel del småtrix.

Du skal lave din egen HttpHandler - f.eks. sådan her :

using System;
using System.IO;
using System.Web;

using iTextSharp.text;
using iTextSharp.text.pdf;

namespace EXP
{
    public class PdfHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/pdf";

            Document d = new Document();

            PdfWriter p = PdfWriter.getInstance(d, context.Response.OutputStream);

            d.Open();

            d.Add(new Paragraph("hej der"));

            d.Close();                               
        }

        public bool IsReusable
        {
            get{return true;}
        }
    }
}

Så skal du angive i web.config (lige under system.web) at du vil bruge din egen handler :

        <httpHandlers>
            <add verb="*" path="*.pdf" type="EXP.PdfHandler,EXP"/>
        </httpHandlers>

Handlere er så konfigureret til at blive benyttet hvis der kaldes noget med en .pdf extension.

Kaldet til at få genereret pdf-en kommer så til at være en anelse anderledes :

Response.Redirect("somefile.pdf");

Dette giver den ønskede effekt, og du har også mulighed for at styre filnavnet.
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:25 #45
Og... så skal du sørge for at angive på webbet at kald til filer med en pdf-extensioin også skal eksekveres af .NET :o)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:26 #46
Det ser ellers fedt ud snepnet :)
Men faktisk virker Arnes lille header fif også hehe...Jeg tror sørme jeg kommer til at bruge det istedet...Tag det ikke personligt...Nu hvor du endda har siddet og brugt tid på at lave det andet. Så har jeg til gengæld lidt kode at kigge på der...Det er en god ting.
Mht. den lamme fejl der før lavede jeg bare en ny solution....og nyt projekt og nu kører det bare....
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:28 #47
Det sidste gør du ved at højreklikke på dit web (altså i din IIS-manager), klikke på properties.
I den viste fane (skulle gerne hedde directory) er der en knap der hedder configuration, hvor du under mappings kan angive... æhh... mappings :o)

Du kan kofigurere .pdf til det samme som f.eks. .ascx

Så skulle det virke... Var det ikke snildt ? *G*
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:30 #48
Det er helt fint - det var meget skægt :o)
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:34 #49
Og hvis du nogensinde prøver det jeg skrev vil du finde ud af at den bare åbner hos brugeren.. man skal ikke sige om man vil gemme eller åbne.
Jeg er faktisk selv lidt imporneret over det... Har ikke prøver sådan noget før :o)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:36 #50
Men jo...super snepnettet der snepnet :P
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:39 #51
Nå..skal der deles point ud :)
Eller har du tid til lidt flere spg :D
Bare rolig jeg har masser af dem hæhæhæhæ
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:40 #52
HAHA :o)
Jeg anede ikke man kunne gøre det der arne skrev - ville bare gerne prøve det med HttpHandleren, men jeg synes det er lidt pinligt nu (mine ører er faktisk helt røde :o). Det var derfor jeg prøvede at holde den tilbage her : http://www.eksperten.dk/spm/521854#rid4788215

Nå - men det vigtigste er jo at du fik det til at virke :o)
mvh
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:42 #53
Du spørger bare... hvis du bare poster i denne kategori ser både jeg selv og arne dem... Så kan jeg jo sende dig en hel masse kode, og så kan arne sende dig en enkelt linie der gør det samme bagefter *G*
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:43 #54
haha...Arne han er jo også fuld af gode fif har jeg efterhånden fundet ud af.
Havde godt tænkt det var headeren der skulle ændres i, men jeg anede ikke hvordan det skulle gøres...
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:44 #55
Men det ved vi jo så nu :o)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:46 #56
Okay, næste problem på dagsordenen er følgende...Nu vil jeg jo gerne lægge et watermark ind på siden da jeg på itext's brilliante side ser at det er muligt...Så jeg daffer lystigt ind i paint og laver en gang grafitti og gemmer det i en jpg-fil. Lægger den i min webroot....og inkluderer følgende kode fra itext's side:

            try
            {
                Watermark watermark = new Watermark(iTextSharp.text.Image.getInstance("watermark.jpg"), 200, 420);
                d.Add(watermark);
            }
            catch
            {
               
                Console.Error.WriteLine("Are you sure you have the file 'watermark.jpg' in the right path?");
            }

men hmmm intet watermark i pdf-dokumentet...Måske du/i har mere held?
Avatar billede arne_v Ekspert
21. juli 2004 - 17:46 #57
Point - jo tak
Avatar billede arne_v Ekspert
21. juli 2004 - 17:48 #58
Iøvrigt laver jeg så godt som aldrig ASP.NET !

:-)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:48 #59
Og endnu et spg. Er det muligt at skrive text ud på serversiden...Fx. hvis der forekommer en exception, og så skrive den ud i en form for command vindue, når den bliver catchet...så man har lidt større mulighed for at fejlfinde :)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:49 #60
Arne, jeg vil gerne have lov at dele pointene mellem dig og snepnet da jeg synes i begge har gjort en god indsats...Så jeg venter lige lidt med at dele ud hvis det er okay
Avatar billede arne_v Ekspert
21. juli 2004 - 17:51 #61
point deling lyder meget fair
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:54 #62
Nejnej... det er fint. Stik dem bare til arne :o)
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:54 #63
Han kan jo bruge dem til noget :o)
Avatar billede bumle90 Nybegynder
21. juli 2004 - 17:56 #64
Snaepnet....Har du prøvet med det watermark der?
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:57 #65
Du kan skrive til dit output-vindue, eller til trace.
Det ene kan du gøre med System.Diagnostics.Debug.Write(...)
Det andet med Trace.Write(...);

Det med debug kræver at du er i debugmode, og det med trace kræver at du slår det til i web.config.
Du kan vælge at få det vist på siden automatisk, eller du kan vælge at kalde <ditweb>/trace.axd for at set det.
Avatar billede snepnet Nybegynder
21. juli 2004 - 17:57 #66
Watermark... næh det har jeg ikke.
Avatar billede bumle90 Nybegynder
22. juli 2004 - 14:21 #67
Hvaa snepnet, lægger du ikke et svar så jeg kan give jer begge point ? :)
Avatar billede bumle90 Nybegynder
22. juli 2004 - 14:26 #68
Og er du/i frisk(e) på endnu en pdf-runde i dag hvis jeg opretter et nyt indlæg hehe
Avatar billede bumle90 Nybegynder
22. juli 2004 - 14:30 #69
Og er du/i frisk(e) på endnu en pdf-runde i dag hvis jeg opretter et nyt indlæg hehe
Avatar billede snepnet Nybegynder
22. juli 2004 - 14:30 #70
Nå - jeg kan ikke slippe for point kan jeg se :o)
Men så et svar da.
Og lad os da bare få nogle flere pdf-runder, men det kan godt være at jeg svarer lidt periodisk - håber det er ok.
Mvh
Avatar billede bumle90 Nybegynder
22. juli 2004 - 15:11 #71
Ved du om de har lavet en komplet oversigt over deres bibliotek.
Lidt lissom javas javadocs over SDK-APIen...U gotta love those docs :)
Avatar billede snepnet Nybegynder
22. juli 2004 - 15:42 #72
:o)
Nej det ved jeg ikke om de har frigivet... Du kan jo surfe lidt hos dem.

Kender du denne her :
http://ndoc.sourceforge.net/

Med den kan du genere rigtig laber dokumentation af dine ting og sager... Superfedt program.
Avatar billede bumle90 Nybegynder
22. juli 2004 - 15:51 #73
Helt præcis hvornår bliver pdf-dokumentet skrevet?
Er det når document.close(); bliver kaldt?
Avatar billede snepnet Nybegynder
22. juli 2004 - 16:06 #74
Nej det er ikke tilfældet

Document d = new Document();

// her oprettes filen
PdfWriter p = PdfWriter.getInstance(d, new FileStream(@"C:\enellerandenfil.pdf", FileMode.Create));

// tilføjer noget til dokumentet
d.Add(...);
// Pga. af writeren snabler, dumpes det også i filen.

// lukker dokument, og dermed fil
d.Close();
// og du kan så åbne den i f.eks. acrobat reader og læse den.
// (det sidste kan du ikke før den er lukket).
Avatar billede bumle90 Nybegynder
22. juli 2004 - 16:10 #75
okay, så det kan altså ikke gøres i denne rækkefølge:

Document d = new Document();
d.add(...);
d.add(...);

PdfWriter p = PdfWriter.getInstance....
d.open();
d.close();


Hmmm nej kan godt se det ikke gir meget mening nu hvor jeg skriver det :)
Avatar billede bumle90 Nybegynder
22. juli 2004 - 18:10 #76
Hvordan i alverden gøres borders usynlige...?
Avatar billede snepnet Nybegynder
22. juli 2004 - 19:45 #77
Øhh.... hvilke borders ?
Avatar billede bumle90 Nybegynder
22. juli 2004 - 19:58 #78
undskyld :)
Borders på tabeller i pdf.
Table a = new Table(4,4); fx
Avatar billede snepnet Nybegynder
22. juli 2004 - 20:03 #79
Kan du ikke bare sætte BorderWith til 0 ?
Avatar billede snepnet Nybegynder
22. juli 2004 - 20:11 #80
Næh... det går vist ikke.
Hvad med den her ?
a.Border = iTextSharp.text.Rectangle.NO_BORDER;
Avatar billede bumle90 Nybegynder
22. juli 2004 - 22:32 #81
Virker det?
Har ikke .net her....Jeg er nødt til at vente til på mandag med at teste :)
Avatar billede snepnet Nybegynder
22. juli 2004 - 23:11 #82
Næh... det kan man egentlig ikke sige at det gør :o)
(jeg har lige prøvet).

Men deres docs er sådan set meget fine... Der linkes i teksten til eksempler.

Jeg har prøvet et af dem her, og det virker fremragende :
(http://itextsharp.sourceforge.net/examples/Chap0518.cs)

Document document = new Document();

PdfWriter p = PdfWriter.getInstance(document, new FileStream(@"C:\TestFiles\fil.pdf", FileMode.Create));

document.Open();

String[] bogusData = {    "Hej",
                            "med",
                            "dig",
                            "du"
                        };
PdfPTable datatable = null;
           
try
{
    float[] headerwidths = {25, 25, 25, 25};
    int NumColumns = headerwidths.Length;

    datatable = new PdfPTable(NumColumns);
    datatable.DefaultCell.Padding = 3;

    datatable.setWidths(headerwidths);
    datatable.WidthPercentage = 100;

    datatable.DefaultCell.BorderWidth = 2;
    datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
   
    datatable.addCell("AAAAAAAA");
    datatable.addCell("BBBBBBBB");
    datatable.addCell("CCCCCCCC");
    datatable.addCell("DDDDDDDD");

    datatable.HeaderRows = 1;           

    int dataRowCount = 10;
    for (int i = 1; i < dataRowCount; i++)
    {
        if (i % 2 == 1)
        {
            datatable.DefaultCell.BorderWidth = 0;
            datatable.DefaultCell.GrayFill = 0.9f;
        }
        for (int x = 0; x < NumColumns; x++)
        {
            datatable.addCell(bogusData[x]);
        }
        if (i % 2 == 1)
        {
            datatable.DefaultCell.BorderWidth = 1;
            datatable.DefaultCell.GrayFill = 0.0f;
        }
    }
    document.Add(datatable);
}
catch(Exception er)
{
    Response.Write(er.Message);
}           

document.Add(datatable);

document.Close();
Avatar billede bumle90 Nybegynder
26. juli 2004 - 10:50 #83
Hmmm når jeg bruger
writer.DirectContent fra fx. dette eksempel:
http://itextsharp.sourceforge.net/examples/Chap1009.cs
Får jeg en access denied error. Det er vidst noget sikkerhed. Ved du hvad den helt præcis gør udover at lave en absolut placering af et objekt i pdf-dokumentet?
DirectContent kunne godt som om den skriver direkte ud på streamen før den har fået lov eller sådan noget.
Har du en ide? :)
Avatar billede bumle90 Nybegynder
30. juli 2004 - 17:45 #84
Hey snepnet....har brug for din hjælp igen hvis du har tid :)
Gider du evt. kigge her?
http://www.eksperten.dk/spm/524736
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