Gå til innhold

Oversette fra VB6 til Java:D (Printing)


Anbefalte innlegg

Jeg holder pa og larer meg Java, har mye erfaring med Visual Basic, og halder pa og prover meg fram..

 

Kan noen vise hvordan du oversetter denne kode snutten til java?

 

Dim Obj As Object'Et variablet object
For Each Obj In Printers'Ga gjennom alle objectene i Printers
   If Obj.DeviceName = "Samsung" Then
       Set Printer = Obj 'Setter Printeren til en med navnet "Samsung"
   End If
Next
Printer.Print "Testing" 'Legger til noe tekst
Printer.EndDoc  'Sender teksten til printer for utskrift

 

'Tusen takk pa forhand;)

Lenke til kommentar
Videoannonse
Annonse
hmm, det var litt invinklet for en noob som meg, noen som kan si meg hvordan jeg pa enklest mulig mate kan printe "Hallo" pa et nytt ark?

 

Sa kan jeg ta det derfra liksom:D

5638581[/snapback]

 

Hvis du syntes det så innviklet ut, er det kanskje et tegn på at printing kanskje ikke er rette stedet å begynne, hvis du vil lære deg Java. Linken du fikk var til Java Print Service API, noe som nok er litt vanskelig å sette seg inn i for en nybegynner.

 

API-dokumentasjon er forøvrig noe du må lære deg å bruke uansett, da

 

Denne linken er til brukerguiden for ovenfor nevnte API, og er kanskje lettere å bruke: http://java.sun.com/j2se/1.4.2/docs/guide/.../JPSTOC.fm.html

 

Werner

Lenke til kommentar

//Vet ikke om dette funker 100%, får hvertfall sendt en printjob..

//printDialog() gjør at du kan velge printer.

//Har ikke printer på hybelen, så har ikke sett utskriften..

//En start er det for deg hvertfall...

 

import java.awt.Graphics;

import java.awt.print.*;

 

public class Utskrift implements Printable{

 

public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {

 

if(pageIndex > 0){

return NO_SUCH_PAGE;

}

else{

g.drawString("Er det noe liv i printern?", (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY()+5);

 

return PAGE_EXISTS;

}

}

public static void main(String[] args)throws Exception{

 

PrinterJob pj = PrinterJob.getPrinterJob();

pj.printDialog();

pj.setPrintable(new Utskrift());

 

System.out.println("Printjob-navn: "+pj.getJobName());

System.out.println("Hvem er det som printer: "+pj.getUserName());

 

pj.print();

 

System.exit(-1);

}

}

Lenke til kommentar
package javaapplication2;

import com.sun.org.apache.bcel.internal.generic.GETFIELD;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.image.ImageObserver;
import java.awt.print.PrinterException;
import java.text.AttributedCharacterIterator;
import javaapplication2.Utskrift;

public class Main {
   
   /** Creates a new instance of Main */
   public Main() {
   }
   
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) throws PrinterException {
       Graphics GF =new Graphics();// her komme feilen.. java.awt.Graphics is abstract; cannot be instantiated

       Utskrift PR = new Utskrift();
       
       java.awt.print.PageFormat PF = new java.awt.print.PageFormat();
       
       PR.print(GF, PF, 0);
   }

   
}

Endret av Richard87
Lenke til kommentar

Det hele er en smule mer komplisert en dette.. Javas printer API er for å si det mildt, VELDIG komplekst.

 

For å skrive ut Utskriftobjektet ditt med standard skriver:

 

PrinterJob pj = PrinterJob.getPrinterJob();

//usikker på om dette trengs...
PageFormat        pageFormat   = pj.defaultPage();  //sett opp sideformatet
Paper             paper        = pageFormat.getPaper();	//finn papirkilden
final      double PAPER_MARGIN = 0.25 * 72,  //marginer.
                     PAPER_WIDTH  = paper.getWidth(),	//bredde
                     PAPER_HEIGHT = paper.getHeight();      //høyde

paper.setSize(    	/sett størrelse på arket
 PAPER_WIDTH  - (2 * PAPER_MARGIN),
 PAPER_HEIGHT - (2 * PAPER_MARGIN));

paper.setImageableArea(  //sett opp skrivbart område
   PAPER_MARGIN,
   PAPER_MARGIN,
   PAPER_WIDTH  - (2 * PAPER_MARGIN),
   PAPER_HEIGHT - (2 * PAPER_MARGIN));

pageFormat.setPaper(paper);    //sett papirkilde på sideformatet
pageFormat.setOrientation(PageFormat.PORTRAIT);//vi ønsker å skriveut portrettark

PrintRequestAttributeSet pras;
pras = new HashPrintRequestAttributeSet();	//attributter for utskriften
pras.add(new Copies(1) );  	//vi skriver ut i en kopi
pras.add(Sides.ONE_SIDED);  	//ensidig

pj.setPrintable(utskriftobjektet,pageFormat);  
pj.print(pras);

 

Dette var litt kjapp klipping og liming fra et prosjekt jeg gjorde for 2 år siden, håper det hjelper deg!

 

PS. Som nevnt tidligere er kanskje ikke utskrifter det aller letteste man kan begynne med i Java...

Lenke til kommentar

Utskriftsobjektet er klassen Uskrift som beskrevet tidligere av Vasily. Det er objektet PrintJob som sørger for å opprette Graphicsobjektet du trenger.

 

Det kan alternativt virke om du bruker ImageIcon, (metodene ImageIcon.getImage().getGraphics() ).. men jeg tror du trenger PrintJob for å få utskrift til å fungere...

 

edit: skriveleif

Endret av OJodd
Lenke til kommentar

Jeg far det ikke til:(

 

package javaapplication2;

import com.sun.org.apache.bcel.internal.generic.GETFIELD;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.image.ImageObserver;
import java.awt.print.PrinterException;
import java.text.AttributedCharacterIterator;
import javaapplication2.Utskrift;

public class Main {
   
   /** Creates a new instance of Main */
   public Main() {
   }
   
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) throws PrinterException {
       //Graphics GF =new Graphics(); // her komme feilen.. variable GF might not have been initialized
       // TODO code application logic here
       Utskrift PR = new Utskrift();
       
       java.awt.print.PageFormat PF = new java.awt.print.PageFormat();
       
       PR.print("Et eller annet", PF, 0);
   }

 

Hva ma jeg butte "ett ellet annet til for og kunne skrive ut noe?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...