KiCad PCB EDA Suite
CLI::EXPORT_PCB_PDF_COMMAND Class Reference

#include <command_export_pcb_pdf.h>

Inheritance diagram for CLI::EXPORT_PCB_PDF_COMMAND:
CLI::EXPORT_PCB_BASE_COMMAND CLI::COMMAND

Public Member Functions

 EXPORT_PCB_PDF_COMMAND ()
 
int Perform (KIWAY &aKiway)
 Entry point to processing commands from args and doing work. More...
 
argparse::ArgumentParser & GetArgParser ()
 
const std::string & GetName () const
 
void PrintHelp ()
 

Protected Member Functions

int doPerform (KIWAY &aKiway) override
 The internal handler that should be overloaded to implement command specific processing and work. More...
 
LSET convertLayerStringList (wxString &aLayerString, bool &aLayerArgSet) const
 
void addLayerArg (bool aRequire)
 

Protected Attributes

std::map< std::string, LSETm_layerMasks
 
LSET m_selectedLayers
 
bool m_selectedLayersSet
 
bool m_hasLayerArg
 
bool m_requireLayers
 
std::string m_name
 
argparse::ArgumentParser m_argParser
 

Detailed Description

Definition at line 28 of file command_export_pcb_pdf.h.

Constructor & Destructor Documentation

◆ EXPORT_PCB_PDF_COMMAND()

CLI::EXPORT_PCB_PDF_COMMAND::EXPORT_PCB_PDF_COMMAND ( )

Definition at line 34 of file command_export_pcb_pdf.cpp.

35{
36 addLayerArg( true );
37
38 m_argParser.add_argument( "--erd", ARG_EXCLUDE_REFDES )
39 .help( UTF8STDSTR( _( "Exclude the reference designator text" ) ) )
40 .implicit_value( true )
41 .default_value( false );
42
43 m_argParser.add_argument( "--ev", ARG_EXCLUDE_VALUE )
44 .help( UTF8STDSTR( _( "Exclude the value text" ) ) )
45 .implicit_value( true )
46 .default_value( false );
47
48 m_argParser.add_argument( "--ibt", ARG_INCLUDE_BORDER_TITLE )
49 .help( UTF8STDSTR( _( "Include the border and title block" ) ) )
50 .implicit_value( true )
51 .default_value( false );
52
53 m_argParser.add_argument( ARG_BLACKANDWHITE )
55 .implicit_value( true )
56 .default_value( false );
57
58 m_argParser.add_argument( "-t", ARG_THEME )
59 .default_value( std::string() )
60 .help( UTF8STDSTR( _( "Color theme to use (will default to PCB Editor settings)" ) ) );
61}
argparse::ArgumentParser m_argParser
Definition: command.h:68
#define UTF8STDSTR(s)
Definition: command.h:27
#define ARG_THEME
#define ARG_INCLUDE_BORDER_TITLE
#define ARG_EXCLUDE_REFDES
#define ARG_BLACKANDWHITE_DESC
#define ARG_EXCLUDE_VALUE
#define ARG_BLACKANDWHITE
#define _(s)
EXPORT_PCB_BASE_COMMAND(const std::string &aName, bool aOutputIsDir=false)

References _, CLI::EXPORT_PCB_BASE_COMMAND::addLayerArg(), ARG_BLACKANDWHITE, ARG_BLACKANDWHITE_DESC, ARG_EXCLUDE_REFDES, ARG_EXCLUDE_VALUE, ARG_INCLUDE_BORDER_TITLE, ARG_THEME, CLI::COMMAND::m_argParser, and UTF8STDSTR.

Member Function Documentation

◆ addLayerArg()

void CLI::EXPORT_PCB_BASE_COMMAND::addLayerArg ( bool  aRequire)
protectedinherited

Definition at line 102 of file command_export_pcb_base.cpp.

103{
104 m_argParser.add_argument( "-l", ARG_LAYERS )
105 .default_value( std::string() )
106 .help( UTF8STDSTR(
107 _( "Comma separated list of untranslated layer names to include such as "
108 "F.Cu,B.Cu" ) ) );
109
110 m_hasLayerArg = true;
111 m_requireLayers = aRequire;
112}
#define ARG_LAYERS

References _, ARG_LAYERS, and UTF8STDSTR.

Referenced by CLI::EXPORT_PCB_DXF_COMMAND::EXPORT_PCB_DXF_COMMAND(), CLI::EXPORT_PCB_GERBER_COMMAND::EXPORT_PCB_GERBER_COMMAND(), EXPORT_PCB_PDF_COMMAND(), CLI::EXPORT_PCB_SVG_COMMAND::EXPORT_PCB_SVG_COMMAND(), and CLI::FP_EXPORT_SVG_COMMAND::FP_EXPORT_SVG_COMMAND().

◆ convertLayerStringList()

LSET CLI::EXPORT_PCB_BASE_COMMAND::convertLayerStringList ( wxString &  aLayerString,
bool &  aLayerArgSet 
) const
protectedinherited

Definition at line 75 of file command_export_pcb_base.cpp.

76{
77 LSET layerMask;
78
79 if( !aLayerString.IsEmpty() )
80 {
81 layerMask.reset();
82 wxStringTokenizer layerTokens( aLayerString, "," );
83 while( layerTokens.HasMoreTokens() )
84 {
85 std::string token = TO_UTF8( layerTokens.GetNextToken() );
86 if( m_layerMasks.count( token ) )
87 {
88 layerMask |= m_layerMasks.at(token);
89 aLayerArgSet = true;
90 }
91 else
92 {
93 wxFprintf( stderr, _( "Invalid layer name \"%s\"\n" ), token );
94 }
95 }
96 }
97
98 return layerMask;
99}
LSET is a set of PCB_LAYER_IDs.
Definition: layer_ids.h:532
#define TO_UTF8(wxstring)
Convert a wxString to a UTF8 encoded C string for all wxWidgets build modes.
Definition: macros.h:96
std::map< std::string, LSET > m_layerMasks

References _, and TO_UTF8.

◆ doPerform()

int CLI::EXPORT_PCB_PDF_COMMAND::doPerform ( KIWAY aKiway)
overrideprotectedvirtual

The internal handler that should be overloaded to implement command specific processing and work.

If not overloaded, the command will simply emit the help options by default

Reimplemented from CLI::EXPORT_PCB_BASE_COMMAND.

Definition at line 64 of file command_export_pcb_pdf.cpp.

65{
66 int baseExit = EXPORT_PCB_BASE_COMMAND::doPerform( aKiway );
67
68 if( baseExit != EXIT_CODES::OK )
69 return baseExit;
70
71 std::unique_ptr<JOB_EXPORT_PCB_PDF> pdfJob( new JOB_EXPORT_PCB_PDF( true ) );
72
73 pdfJob->m_filename = FROM_UTF8( m_argParser.get<std::string>( ARG_INPUT ).c_str() );
74 pdfJob->m_outputFile = FROM_UTF8( m_argParser.get<std::string>( ARG_OUTPUT ).c_str() );
75
76 if( !wxFile::Exists( pdfJob->m_filename ) )
77 {
78 wxFprintf( stderr, _( "Board file does not exist or is not accessible\n" ) );
80 }
81
82 pdfJob->m_plotFootprintValues = !m_argParser.get<bool>( ARG_EXCLUDE_VALUE );
83 pdfJob->m_plotRefDes = !m_argParser.get<bool>( ARG_EXCLUDE_REFDES );
84
85 pdfJob->m_plotBorderTitleBlocks = m_argParser.get<bool>( ARG_INCLUDE_BORDER_TITLE );
86
87 pdfJob->m_blackAndWhite = m_argParser.get<bool>( ARG_BLACKANDWHITE );
88 pdfJob->m_colorTheme = FROM_UTF8( m_argParser.get<std::string>( ARG_THEME ).c_str() );
89
90 pdfJob->m_printMaskLayer = m_selectedLayers;
91
92 LOCALE_IO dummy; // Switch to "C" locale
93 int exitCode = aKiway.ProcessJob( KIWAY::FACE_PCB, pdfJob.get() );
94
95 return exitCode;
96}
int ProcessJob(KIWAY::FACE_T aFace, JOB *job)
Definition: kiway.cpp:660
@ FACE_PCB
pcbnew DSO
Definition: kiway.h:287
Instantiate the current locale within a scope in which you are expecting exceptions to be thrown.
Definition: locale_io.h:41
#define ARG_OUTPUT
#define ARG_INPUT
static wxString FROM_UTF8(const char *cstring)
Convert a UTF8 encoded C string to a wxString for all wxWidgets build modes.
Definition: macros.h:110
static const int OK
Definition: exit_codes.h:30
static const int ERR_INVALID_INPUT_FILE
Definition: exit_codes.h:33
std::vector< FAB_LAYER_COLOR > dummy
int doPerform(KIWAY &aKiway) override
The internal handler that should be overloaded to implement command specific processing and work.

References _, ARG_BLACKANDWHITE, ARG_EXCLUDE_REFDES, ARG_EXCLUDE_VALUE, ARG_INCLUDE_BORDER_TITLE, ARG_INPUT, ARG_OUTPUT, ARG_THEME, CLI::EXPORT_PCB_BASE_COMMAND::doPerform(), dummy, CLI::EXIT_CODES::ERR_INVALID_INPUT_FILE, KIWAY::FACE_PCB, FROM_UTF8(), CLI::EXIT_CODES::OK, and KIWAY::ProcessJob().

◆ GetArgParser()

argparse::ArgumentParser & CLI::COMMAND::GetArgParser ( )
inlineinherited

Definition at line 54 of file command.h.

54{ return m_argParser; }

References CLI::COMMAND::m_argParser.

Referenced by recurseArgParserBuild(), and recurseArgParserSubCommandUsed().

◆ GetName()

const std::string & CLI::COMMAND::GetName ( void  ) const
inlineinherited

Definition at line 55 of file command.h.

55{ return m_name; }
std::string m_name
Definition: command.h:67

References CLI::COMMAND::m_name.

Referenced by recurseArgParserSubCommandUsed().

◆ Perform()

int CLI::COMMAND::Perform ( KIWAY aKiway)
inherited

Entry point to processing commands from args and doing work.

Definition at line 49 of file command.cpp.

50{
51 if( m_argParser[ARG_HELP] == true )
52 {
53 PrintHelp();
54
55 return 0;
56 }
57
58 return doPerform( aKiway );
59}
virtual int doPerform(KIWAY &aKiway)
The internal handler that should be overloaded to implement command specific processing and work.
Definition: command.cpp:62
void PrintHelp()
Definition: command.cpp:41
#define ARG_HELP
Definition: command.h:30

References ARG_HELP.

◆ PrintHelp()

void CLI::COMMAND::PrintHelp ( )
inherited

Definition at line 41 of file command.cpp.

42{
43 std::stringstream ss;
44 ss << m_argParser;
45 wxPrintf( FROM_UTF8( ss.str().c_str() ) );
46}

References FROM_UTF8().

Member Data Documentation

◆ m_argParser

◆ m_hasLayerArg

bool CLI::EXPORT_PCB_BASE_COMMAND::m_hasLayerArg
protectedinherited

◆ m_layerMasks

std::map<std::string, LSET> CLI::EXPORT_PCB_BASE_COMMAND::m_layerMasks
protectedinherited

◆ m_name

std::string CLI::COMMAND::m_name
protectedinherited

Definition at line 67 of file command.h.

Referenced by CLI::COMMAND::GetName().

◆ m_requireLayers

bool CLI::EXPORT_PCB_BASE_COMMAND::m_requireLayers
protectedinherited

◆ m_selectedLayers

LSET CLI::EXPORT_PCB_BASE_COMMAND::m_selectedLayers
protectedinherited

Definition at line 51 of file command_export_pcb_base.h.

◆ m_selectedLayersSet

bool CLI::EXPORT_PCB_BASE_COMMAND::m_selectedLayersSet
protectedinherited

The documentation for this class was generated from the following files: