mirror of
https://github.com/Investigamer/cardconjurer.git
synced 2025-07-26 21:04:58 -05:00
better print guides
This commit is contained in:
BIN
print/black.png
Normal file
BIN
print/black.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
@@ -30,7 +30,7 @@ include('../globalHTML/header-1.php');
|
|||||||
<input type='number' id='cardMargin' class='input margin-bottom' value='30' min='0' onchange='setMarginSize(this.value);'>
|
<input type='number' id='cardMargin' class='input margin-bottom' value='30' min='0' onchange='setMarginSize(this.value);'>
|
||||||
<h5 class='margin-bottom padding input-description'>Set PPI (pixels per inch)</h5>
|
<h5 class='margin-bottom padding input-description'>Set PPI (pixels per inch)</h5>
|
||||||
<input type='number' id='cardPPI' class='input margin-bottom' value='600' min='1' max='2400' onchange='setPPI(this.value);'>
|
<input type='number' id='cardPPI' class='input margin-bottom' value='600' min='1' max='2400' onchange='setPPI(this.value);'>
|
||||||
<h5 class='margin-bottom padding input-description'>Include cutting aids (colored marks to help guide cuts)</h5>
|
<h5 class='margin-bottom padding input-description'>Include cutting aids (colored marks to help guide cuts; may not be visible in preview)</h5>
|
||||||
<label class='checkbox-container input margin-bottom'>Cutting aids
|
<label class='checkbox-container input margin-bottom'>Cutting aids
|
||||||
<input id='cuttingAidsCheckbox' type='checkbox' onchange='setCuttingAids(this.checked);'>
|
<input id='cuttingAidsCheckbox' type='checkbox' onchange='setCuttingAids(this.checked);'>
|
||||||
<span class='checkmark'></span>
|
<span class='checkmark'></span>
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
//Configure sizes
|
//Configure sizes
|
||||||
var ppi = 600;
|
var ppi = 600;
|
||||||
var page = [8.5, 11];
|
var page = [8.5, 11];
|
||||||
|
//Constants
|
||||||
|
const aidWidth = 2;
|
||||||
|
const aidOffset = aidWidth / 2;
|
||||||
//card size
|
//card size
|
||||||
var cardWidth = parseInt(document.querySelector("#cardWidth").value);
|
var cardWidth = parseInt(document.querySelector("#cardWidth").value);
|
||||||
var cardHeight = parseInt(document.querySelector("#cardHeight").value);
|
var cardHeight = parseInt(document.querySelector("#cardHeight").value);
|
||||||
@@ -22,6 +25,8 @@ drawSheet();
|
|||||||
//svgs
|
//svgs
|
||||||
var cuttingGuides = new Image();
|
var cuttingGuides = new Image();
|
||||||
cuttingGuides.src = 'cuttingGuides.svg';
|
cuttingGuides.src = 'cuttingGuides.svg';
|
||||||
|
var blackPixel = new Image();
|
||||||
|
blackPixel.src = 'black.png';
|
||||||
|
|
||||||
function uploadCard(card, filename) {
|
function uploadCard(card, filename) {
|
||||||
var img = new Image();
|
var img = new Image();
|
||||||
@@ -50,8 +55,22 @@ function drawSheetReal() {
|
|||||||
//Calc page margins
|
//Calc page margins
|
||||||
const pageMarginX = Math.floor((page[0] * ppi - cardsX * cw) / 2);
|
const pageMarginX = Math.floor((page[0] * ppi - cardsX * cw) / 2);
|
||||||
const pageMarginY = Math.floor((page[1] * ppi - cardsY * ch) / 2);
|
const pageMarginY = Math.floor((page[1] * ppi - cardsY * ch) / 2);
|
||||||
//Iterate through every viable space and draw the card there
|
//Draw cutting guides that cover the page
|
||||||
var count = 0;
|
var count = 0;
|
||||||
|
if (useCuttingAids) {
|
||||||
|
for (var i = 0; i < cardsX; i++) {
|
||||||
|
var x = pageMarginX + i * cw + Math.floor(cardMarginX / 2) + cardPaddingX - aidOffset;
|
||||||
|
context.fillRect(x, 0, aidWidth, page[1] * ppi);
|
||||||
|
context.fillRect(x + cardWidth, 0, aidWidth, page[1] * ppi);
|
||||||
|
}
|
||||||
|
for (var j = 0; j < cardsY; j++) {
|
||||||
|
var y = pageMarginY + j * ch + Math.floor(cardMarginY / 2) + cardPaddingY - aidOffset;
|
||||||
|
context.fillRect(0, y, page[0] * ppi, aidWidth);
|
||||||
|
context.fillRect(0, y + cardHeight, page[0] * ppi, aidWidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Iterate through every viable space and draw the card there
|
||||||
|
count = 0;
|
||||||
for (var i = imageList.length - 1; i >= 0 && count < cardsX * cardsY; i--) {
|
for (var i = imageList.length - 1; i >= 0 && count < cardsX * cardsY; i--) {
|
||||||
if (imageList[i].width > 1) {
|
if (imageList[i].width > 1) {
|
||||||
try {
|
try {
|
||||||
@@ -113,8 +132,22 @@ function downloadPDF() {
|
|||||||
//Calc page margins
|
//Calc page margins
|
||||||
const pageMarginX = Math.floor((page[0] * ppi - cardsX * cw) / 2);
|
const pageMarginX = Math.floor((page[0] * ppi - cardsX * cw) / 2);
|
||||||
const pageMarginY = Math.floor((page[1] * ppi - cardsY * ch) / 2);
|
const pageMarginY = Math.floor((page[1] * ppi - cardsY * ch) / 2);
|
||||||
//Iterate through every viable space and draw the card there
|
//Draw cutting guides that cover the page
|
||||||
var count = 0;
|
var count = 0;
|
||||||
|
if (useCuttingAids) {
|
||||||
|
for (var i = 0; i < cardsX; i++) {
|
||||||
|
var x = pageMarginX + i * cw + Math.floor(cardMarginX / 2) + cardPaddingX - aidOffset;
|
||||||
|
doc.addImage(blackPixel, "PNG", x / ppi, 0, aidWidth / ppi, page[1]);
|
||||||
|
doc.addImage(blackPixel, "PNG", (x + cardWidth) / ppi, 0, aidWidth / ppi, page[1]);
|
||||||
|
}
|
||||||
|
for (var j = 0; j < cardsY; j++) {
|
||||||
|
var y = pageMarginY + j * ch + Math.floor(cardMarginY / 2) + cardPaddingY - aidOffset;
|
||||||
|
doc.addImage(blackPixel, "PNG", 0, y / ppi, page[0], aidWidth / ppi);
|
||||||
|
doc.addImage(blackPixel, "PNG", 0, (y + cardHeight) / ppi, page[0], aidWidth / ppi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Iterate through every viable space and draw the card there
|
||||||
|
count = 0;
|
||||||
for (var i = imageList.length - 1; i >= 0 && count < cardsX * cardsY; i--) {
|
for (var i = imageList.length - 1; i >= 0 && count < cardsX * cardsY; i--) {
|
||||||
if (imageList[i].width > 1) {
|
if (imageList[i].width > 1) {
|
||||||
try {
|
try {
|
||||||
|
Reference in New Issue
Block a user