7,6 → 7,7 |
import java.awt.event.ActionListener; |
import java.awt.print.PageFormat; |
import java.awt.print.Pageable; |
import java.awt.print.Paper; |
import java.awt.print.PrinterException; |
import java.awt.print.PrinterJob; |
import java.util.ArrayList; |
15,6 → 16,11 |
import java.util.Comparator; |
import java.util.List; |
|
import javax.print.attribute.HashPrintRequestAttributeSet; |
import javax.print.attribute.PrintRequestAttributeSet; |
import javax.print.attribute.Size2DSyntax; |
import javax.print.attribute.standard.MediaPrintableArea; |
import javax.print.attribute.standard.MediaSizeName; |
import javax.swing.JButton; |
import javax.swing.JCheckBox; |
import javax.swing.JLabel; |
25,6 → 31,7 |
|
import org.jopencalendar.model.JCalendarItem; |
import org.jopencalendar.print.CalendarItemPrinter; |
import org.openconcerto.erp.generationDoc.A4; |
import org.openconcerto.sql.users.User; |
import org.openconcerto.ui.DefaultGridBagConstraints; |
import org.openconcerto.ui.JDate; |
33,6 → 40,7 |
public class CalendarPrintPanel extends JPanel { |
final JCheckBox preview = new JCheckBox("Aperçu"); |
final JButton bPrint = new JButton("Imprimer"); |
private static final double POINTS_PER_INCH = 72.0; |
|
public CalendarPrintPanel(final OperationCalendarManager manager, final int week, final int year, final List<User> selectedUsers, final List<String> selectedStates) { |
preview.setSelected(true); |
86,10 → 94,10 |
return; |
} |
|
final List<Pageable> p = new ArrayList<Pageable>(); |
final List<Pageable> p = new ArrayList<>(); |
|
for (User user : selectedUsers) { |
final List<User> l = new ArrayList<User>(); |
final List<User> l = new ArrayList<>(); |
l.add(user); |
final List<JCalendarItem> itemInWeek = manager.getItemIn(d1.getDate(), d2.getDate(), l, selectedStates); |
if (!itemInWeek.isEmpty()) { |
139,14 → 147,21 |
PrinterJob job = PrinterJob.getPrinterJob(); |
boolean ok = job.printDialog(); |
if (ok) { |
final PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); |
final MediaSizeName media = MediaSizeName.ISO_A4; |
attributes.add(media); |
final Paper paper = new A4(); |
|
final MediaPrintableArea printableArea = new MediaPrintableArea((float) (paper.getImageableX() / POINTS_PER_INCH), (float) (paper.getImageableY() / POINTS_PER_INCH), |
(float) (paper.getImageableWidth() / POINTS_PER_INCH), (float) (paper.getImageableHeight() / POINTS_PER_INCH), Size2DSyntax.INCH); |
attributes.add(printableArea); |
|
for (Pageable document : pageables) { |
PageFormat p = job.getPageFormat(null); |
System.err.println("CalendarPrintPanel.printPages():Size: " + p.getWidth() + " x " + p.getHeight()); |
System.err.println("CalendarPrintPanel.printPages():Imagageable: " + p.getImageableWidth() + " x " + p.getImageableHeight()); |
job.getPageFormat(null).getImageableHeight(); |
job.setPageable(document); |
try { |
job.print(); |
job.print(attributes); |
} catch (PrinterException e) { |
e.printStackTrace(); |
} |