Avatar billede krukken Mester
12. juli 2005 - 12:36 Der er 9 kommentarer og
1 løsning

Udskrivning til HTML-dokument

Hej,

Hvordan udskriver man nemmeste en HTML-side fra Java?
Avatar billede mikkelbm Nybegynder
12. juli 2005 - 13:13 #1
Udskrivning til printer eller visning af html ?
Avatar billede mikkelbm Nybegynder
12. juli 2005 - 13:14 #2
Hvis det er udskrivning til printer så ta' et kig på:

http://www.fawcette.com/javapro/2002_12/online/print_kgauthier_12_10_02/

De har lavet en smart lille klasse, som kan udskrive en JEditorPane.
Avatar billede mikkelbm Nybegynder
12. juli 2005 - 13:14 #3
Hvis det blot er visning af html så kig på:

http://java.sun.com/j2se/1.3/docs/api/javax/swing/JEditorPane.html
Avatar billede krukken Mester
12. juli 2005 - 13:17 #4
Det er visning af HTML. Jeg er gået i gang med en langt mere simpel løsning med bare at udskrive tags. Er det andet lettere?

Findes der ikke en måde hvor man kan oprette tabeller og opretter celler - lidt sige som udskrivning til XLS via POI?(Hvis du kender dette)
Avatar billede mikkelbm Nybegynder
12. juli 2005 - 13:43 #5
Hvis det er visning af HMTL, så skal du bruge JEditorPane.

Nu skriver du at du vil oprette tabeller? Mener du at du vil have "autogenereret" noget HTML ?

Hvis ja, så er der ikke noget standard i Java til det. Men måske du kan finde noget på nettet.
Avatar billede krukken Mester
12. juli 2005 - 13:54 #6
Det er til at autogenerere et HTML-dokument som indeholder en table med nogle data. Løsning skal bruges til at præsentere nogle data for en bruger.
Avatar billede krukken Mester
12. juli 2005 - 13:56 #7
Jeg har prøver at lede rundt omkring på nettet - og jeg har ikke rigtig kunne finde nogen let løsning. Min løsning er meget simpel - siden skal kun indeholde en tabel og nogle rækker, så jeg tror faktisk ikke at jeg finder en lettere løsning end bare at udskrive HTML-tags fra Java.

Ligger du et svar?
Avatar billede mikkelbm Nybegynder
12. juli 2005 - 14:13 #8
Hvis det er så simpelt. Og det kun er én tabel, så tror jeg også at det er den letteste løsning at lave det selv.

Alternativt kan du jo tage et kig på JTable som du også kan en masse tricks med:

http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

Dog ikke helt de samme "nemme" designmuligheder som i en html table.
Avatar billede krukken Mester
12. juli 2005 - 14:39 #9
He he - jeps, jeg er faktisk færdig nu:-) Det er vist mest simpelt at lave det selv i denne forbindelse. Nedenfor angiver jeg lige min kode, hvis der skulle være andre som er intresseret:-)
*************
package CVR.Print;

import CVR.Lang.ILanguage;
import CVR.IO.Sheet;
import CVR.IO.Firm;
import CVR.Log.Logger;
import CVR.Util.IIterator;

import javax.swing.table.TableModel;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.util.Date;
import java.text.Format;
import java.text.SimpleDateFormat;

public class PrintToHTML extends Printer
{
    private ILanguage language;
    private TableModel model;
    PrintWriter print;
    Firm firm;

    public PrintToHTML(ILanguage language, String filename)
    {
        this.language = language;
        try
        {
            print = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
        }
        catch(Exception e)
        {
            Logger.Log(e,Logger.PRINT);
        }

    }

    private void createPageHeader ()
    {
        print.println ("<html>");
        print.println ("<head>");
        print.println ("<title>"+getDescription()+"</title>");
        print.println ("<STYLE>.gray{BACKGROUND-COLOR: #999999;}</STYLE>");
        print.println ("<STYLE>html *{margin: 0;padding: 0;border: 0;border-collapse: collapse;font-family: Geneva, Arial, Helvetica, san-serif;font-size: 12px; font-style: normal; font-weight: bold;}</STYLE>");
        print.println ("<STYLE>.odd{BACKGROUND-COLOR: #EEEEEE;}</STYLE>");
        print.println ("<STYLE>.even{BACKGROUND-COLOR: #FFFFFF;}</STYLE>");
        print.println ("</head>");
        print.println ("<body>");
        print.println ("<table>");
        print.println ("<tr class='gray'>"+
                "<th>"+language.getText("firm")+"</th>"+
                "<th>"+language.getText("adress")+"</th>"+
                "<th>"+language.getText("zip")+"</th>"+
                "<th>"+language.getText("post")+"</th>"+
                "<th>"+language.getText("phone")+"</th>"+
                "<th>"+language.getText("cvr")+"</th>"+
                "</tr>");
    }

    private void createPageFooter ()
    {
        Format formatter = new SimpleDateFormat("dd. MMMM yyyy HH:mm:ss");
        print.println("<tr class='gray'>"+
                      "<td colspan='4'>"+getDescription()+"</td>"+
                      "<td colspan='2'>"+formatter.format(new Date())+"</td>"+
                      "</tr>");
        print.println ("</table>");
        print.println ("</body>");
        print.println ("</html>");
        print.flush();
        print.close();
    }

    private void createReport()
    {
        IIterator iterator = Sheet.instance().getSheetIterator();
        int i = 0;
        if(iterator.first())
        {
            do
            {
                firm = iterator.current();
                if(i%2 == 0)
                {
                    print.println("<tr class='even'>"+
                                  "<td>"+firm.getName()+"</td>"+
                                  "<td>"+firm.getAdress()+"</td>"+
                                  "<td>"+firm.getDistrict()+"</td>"+
                                  "<td>"+firm.getZipcode()+"</td>"+
                                  "<td>"+firm.getPhone()+"</td>"+
                                  "<td>"+firm.getCVRnumber()+"</td>"+
                                  "</tr>");
                }
                else
                {
                    print.println("<tr class='odd'>"+
                                  "<td>"+firm.getName()+"</td>"+
                                  "<td>"+firm.getAdress()+"</td>"+
                                  "<td>"+firm.getDistrict()+"</td>"+
                                  "<td>"+firm.getZipcode()+"</td>"+
                                  "<td>"+firm.getPhone()+"</td>"+
                                  "<td>"+firm.getCVRnumber()+"</td>"+
                                  "</tr>");
                }
                i++;
            }
            while ( iterator.next() );
        }
    }

    public String getDescription ()
    {
        String temp = Sheet.instance().getFilename();
        if(!temp.endsWith(".xls"))
        {
            String file[] = temp.split("\\.");
            return file[0]+".xls";
        }
        else
            return temp;
    }



    public void Print()
    {
        createPageHeader();
        createReport();
        createPageFooter();
    }

    public TableModel getdata()
    {
        return model;
    }
}
*****************
Avatar billede krukken Mester
12. juli 2005 - 14:40 #10
Tak for hjælpen - her er dine points:-)
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
Kurser inden for grundlæggende programmering

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