@@ -23,28 +23,69 @@ while [[ $# -gt 0 ]]; do
2323 esac
2424done
2525
26- echo " 📄 Exporting PCB layout to PDF for ${PROJECT_DESCRIPTION} ..."
26+ echo " 📄 Exporting PCB layout to combined PDF for ${PROJECT_DESCRIPTION} ..."
2727cd " ${PROJECT_PATH} "
2828
29- # Export PCB top layer
29+ # Create temporary directory for individual pages
30+ TEMP_DIR=" Export/PDF/temp"
31+ mkdir -p " ${TEMP_DIR} "
32+
33+ # Export individual layer pages
34+ echo " 📄 Exporting User.Drawings + Edge.Cuts..."
3035kicad-cli pcb export pdf \
31- --output " Export/PDF/${PROJECT_NAME} -PCB-Top.pdf" \
36+ --output " ${TEMP_DIR} /01-user-drawings.pdf" \
37+ --layers " User.Drawings,Edge.Cuts" \
38+ ${PROJECT_NAME} .kicad_pcb
39+
40+ echo " 📄 Exporting F.Cu + Edge.Cuts..."
41+ kicad-cli pcb export pdf \
42+ --output " ${TEMP_DIR} /02-front-copper.pdf" \
43+ --layers " F.Cu,Edge.Cuts" \
44+ ${PROJECT_NAME} .kicad_pcb
45+
46+ echo " 📄 Exporting B.Cu + Edge.Cuts (mirrored)..."
47+ kicad-cli pcb export pdf \
48+ --output " ${TEMP_DIR} /03-back-copper.pdf" \
49+ --layers " B.Cu,Edge.Cuts" \
50+ --mirror \
51+ ${PROJECT_NAME} .kicad_pcb
52+
53+ echo " 📄 Exporting F.Cu + F.Silkscreen + F.Mask + Edge.Cuts..."
54+ kicad-cli pcb export pdf \
55+ --output " ${TEMP_DIR} /04-front-assembly.pdf" \
3256 --layers " F.Cu,F.Silkscreen,F.Mask,Edge.Cuts" \
3357 ${PROJECT_NAME} .kicad_pcb
34-
35- # Export PCB bottom layer
58+
59+ echo " 📄 Exporting B.Cu + B.Silkscreen + B.Mask + Edge.Cuts (mirrored)... "
3660kicad-cli pcb export pdf \
37- --output " Export/PDF/ ${PROJECT_NAME} -PCB-Bottom .pdf" \
61+ --output " ${TEMP_DIR} /05-back-assembly .pdf" \
3862 --layers " B.Cu,B.Silkscreen,B.Mask,Edge.Cuts" \
63+ --mirror \
3964 ${PROJECT_NAME} .kicad_pcb
65+
66+ # Combine all PDFs into one using pdftk
67+ echo " 📄 Combining all layers into single PDF using pdftk..."
68+ COMBINED_PDF=" Export/PDF/${PROJECT_NAME} -PCB-Complete.pdf"
69+
70+ pdftk " ${TEMP_DIR} " /01-user-drawings.pdf \
71+ " ${TEMP_DIR} " /02-front-copper.pdf \
72+ " ${TEMP_DIR} " /03-back-copper.pdf \
73+ " ${TEMP_DIR} " /04-front-assembly.pdf \
74+ " ${TEMP_DIR} " /05-back-assembly.pdf \
75+ cat output " ${COMBINED_PDF} "
76+
77+ # Clean up temporary files
78+ rm -rf " ${TEMP_DIR} "
79+
80+ # Verify export
81+ if [ -f " ${COMBINED_PDF} " ]; then
82+ echo " ✅ ${PROJECT_NAME} -PCB-Complete.pdf exported successfully (5 pages)"
83+ ls -lh " ${COMBINED_PDF} "
4084
41- # Verify exports
42- for pdf in " Export/PDF/${PROJECT_NAME} -PCB-Top.pdf" " Export/PDF/${PROJECT_NAME} -PCB-Bottom.pdf" ; do
43- if [ -f " $pdf " ]; then
44- echo " ✅ $( basename $pdf ) exported successfully"
45- ls -lh " $pdf "
46- else
47- echo " ❌ Error: $( basename $pdf ) export failed!"
48- exit 1
49- fi
50- done
85+ # Show page count using pdftk
86+ PAGE_COUNT=$( pdftk " ${COMBINED_PDF} " dump_data 2> /dev/null | grep NumberOfPages | awk ' {print $2}' || echo " 5" )
87+ echo " 📄 PDF contains ${PAGE_COUNT} pages"
88+ else
89+ echo " ❌ Error: Combined PCB PDF export failed!"
90+ exit 1
91+ fi
0 commit comments