mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Support PDF-export from Python
This commit is contained in:
parent
1133816471
commit
e1c1981830
@ -35,6 +35,14 @@ CAF_PDM_SOURCE_INIT( RicfExportSnapshots, "exportSnapshots" );
|
|||||||
|
|
||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
|
template <>
|
||||||
|
void RicfExportSnapshots::PreferredOutputFormatEnum::setUp()
|
||||||
|
{
|
||||||
|
addItem( RicfExportSnapshots::PlotOutputFormat::PNG, "PNG", "PNG" );
|
||||||
|
addItem( RicfExportSnapshots::PlotOutputFormat::PDF, "PDF", "PDF" );
|
||||||
|
setDefault( RicfExportSnapshots::PlotOutputFormat::PNG );
|
||||||
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void RicfExportSnapshots::SnapshotsTypeEnum::setUp()
|
void RicfExportSnapshots::SnapshotsTypeEnum::setUp()
|
||||||
{
|
{
|
||||||
@ -55,6 +63,7 @@ RicfExportSnapshots::RicfExportSnapshots()
|
|||||||
RICF_InitField( &m_caseId, "caseId", -1, "Case Id", "", "", "" );
|
RICF_InitField( &m_caseId, "caseId", -1, "Case Id", "", "", "" );
|
||||||
RICF_InitField( &m_viewId, "viewId", -1, "View Id", "", "", "" );
|
RICF_InitField( &m_viewId, "viewId", -1, "View Id", "", "", "" );
|
||||||
RICF_InitField( &m_exportFolder, "exportFolder", QString(), "Export Folder", "", "", "" );
|
RICF_InitField( &m_exportFolder, "exportFolder", QString(), "Export Folder", "", "", "" );
|
||||||
|
RICF_InitFieldNoDefault( &m_plotOutputFormat, "plotOutputFormat", "Output Format", "", "", "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -109,9 +118,12 @@ RicfCommandResponse RicfExportSnapshots::execute()
|
|||||||
QApplication::processEvents();
|
QApplication::processEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString fileSuffix = ".png";
|
||||||
|
if ( m_plotOutputFormat == PlotOutputFormat::PDF ) fileSuffix = ".pdf";
|
||||||
RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( absolutePathToSnapshotDir,
|
RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( absolutePathToSnapshotDir,
|
||||||
m_prefix,
|
m_prefix,
|
||||||
m_viewId() );
|
m_viewId(),
|
||||||
|
fileSuffix );
|
||||||
}
|
}
|
||||||
|
|
||||||
mainWnd->loadWinGeoAndDockToolBarLayout();
|
mainWnd->loadWinGeoAndDockToolBarLayout();
|
||||||
|
@ -34,6 +34,14 @@ class RicfExportSnapshots : public RicfCommandObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Values are exposed in gRPC .proto. Do not change without also changing .proto
|
// Values are exposed in gRPC .proto. Do not change without also changing .proto
|
||||||
|
|
||||||
|
enum class PlotOutputFormat
|
||||||
|
{
|
||||||
|
PNG,
|
||||||
|
PDF
|
||||||
|
};
|
||||||
|
typedef caf::AppEnum<PlotOutputFormat> PreferredOutputFormatEnum;
|
||||||
|
|
||||||
enum SnapshotsType
|
enum SnapshotsType
|
||||||
{
|
{
|
||||||
VIEWS,
|
VIEWS,
|
||||||
@ -53,4 +61,5 @@ private:
|
|||||||
caf::PdmField<int> m_caseId;
|
caf::PdmField<int> m_caseId;
|
||||||
caf::PdmField<int> m_viewId;
|
caf::PdmField<int> m_viewId;
|
||||||
caf::PdmField<QString> m_exportFolder;
|
caf::PdmField<QString> m_exportFolder;
|
||||||
|
caf::PdmField<PreferredOutputFormatEnum> m_plotOutputFormat;
|
||||||
};
|
};
|
||||||
|
@ -68,7 +68,8 @@ void RicSnapshotAllPlotsToFileFeature::saveAllPlots()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
|
void RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
|
||||||
const QString& prefix,
|
const QString& prefix,
|
||||||
int viewId )
|
int viewId,
|
||||||
|
const QString& preferredFileSuffix /*=".png"*/ )
|
||||||
{
|
{
|
||||||
RiaApplication* app = RiaApplication::instance();
|
RiaApplication* app = RiaApplication::instance();
|
||||||
|
|
||||||
@ -98,7 +99,7 @@ void RicSnapshotAllPlotsToFileFeature::exportSnapshotOfPlotsIntoFolder( const QS
|
|||||||
|
|
||||||
fileName.replace( " ", "_" );
|
fileName.replace( " ", "_" );
|
||||||
|
|
||||||
QString absoluteFileName = caf::Utils::constructFullFileName( absSnapshotPath, fileName, ".png" );
|
QString absoluteFileName = caf::Utils::constructFullFileName( absSnapshotPath, fileName, preferredFileSuffix );
|
||||||
|
|
||||||
RicSnapshotViewToFileFeature::saveSnapshotAs( absoluteFileName, viewWindow );
|
RicSnapshotViewToFileFeature::saveSnapshotAs( absoluteFileName, viewWindow );
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,8 @@ public:
|
|||||||
|
|
||||||
static void exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
|
static void exportSnapshotOfPlotsIntoFolder( const QString& snapshotFolderName,
|
||||||
const QString& prefix = "",
|
const QString& prefix = "",
|
||||||
int viewId = -1 );
|
int viewId = -1,
|
||||||
|
const QString& preferredFileSuffix = ".png" );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Overrides
|
// Overrides
|
||||||
|
@ -50,7 +50,12 @@ CAF_CMD_SOURCE_INIT( RicSnapshotViewToFileFeature, "RicSnapshotViewToFileFeature
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSnapshotViewToFileFeature::saveSnapshotAs( const QString& fileName, RimViewWindow* viewWindow )
|
void RicSnapshotViewToFileFeature::saveSnapshotAs( const QString& fileName, RimViewWindow* viewWindow )
|
||||||
{
|
{
|
||||||
if ( viewWindow )
|
RimPlotWindow* plotWindow = dynamic_cast<RimPlotWindow*>( viewWindow );
|
||||||
|
if ( plotWindow && fileName.endsWith( ".pdf" ) )
|
||||||
|
{
|
||||||
|
savePlotPDFReportAs( fileName, plotWindow );
|
||||||
|
}
|
||||||
|
else if ( viewWindow )
|
||||||
{
|
{
|
||||||
QImage image = viewWindow->snapshotWindowContent();
|
QImage image = viewWindow->snapshotWindowContent();
|
||||||
saveSnapshotAs( fileName, image );
|
saveSnapshotAs( fileName, image );
|
||||||
|
@ -45,6 +45,12 @@ message ExportMultiCaseRequest
|
|||||||
string gridListFile = 1;
|
string gridListFile = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum PlotOutputFormat
|
||||||
|
{
|
||||||
|
PNG = 0;
|
||||||
|
PDF = 1;
|
||||||
|
}
|
||||||
|
|
||||||
enum SnapshotType
|
enum SnapshotType
|
||||||
{
|
{
|
||||||
VIEWS = 0;
|
VIEWS = 0;
|
||||||
@ -59,6 +65,7 @@ message ExportSnapshotsRequest
|
|||||||
int32 caseId = 3;
|
int32 caseId = 3;
|
||||||
int32 viewId = 4;
|
int32 viewId = 4;
|
||||||
string exportFolder = 5;
|
string exportFolder = 5;
|
||||||
|
PlotOutputFormat plotOutputFormat = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ExportPropertyRequest
|
message ExportPropertyRequest
|
||||||
|
@ -14,6 +14,7 @@ print("Exporting to: " + export_folder)
|
|||||||
|
|
||||||
for plot in plots:
|
for plot in plots:
|
||||||
plot.export_snapshot(export_folder=export_folder)
|
plot.export_snapshot(export_folder=export_folder)
|
||||||
|
plot.export_snapshot(export_folder=export_folder, output_format='PDF')
|
||||||
well_log_plot = rips.WellLogPlot.from_pdm_object(plot)
|
well_log_plot = rips.WellLogPlot.from_pdm_object(plot)
|
||||||
if well_log_plot is not None:
|
if well_log_plot is not None:
|
||||||
well_log_plot.export_data_as_las(export_folder=export_folder)
|
well_log_plot.export_data_as_las(export_folder=export_folder)
|
||||||
|
@ -16,18 +16,20 @@ class Plot(PdmObject):
|
|||||||
PdmObject.__init__(self, pdm_object.pb2_object(), pdm_object.channel(), pdm_object.project())
|
PdmObject.__init__(self, pdm_object.pb2_object(), pdm_object.channel(), pdm_object.project())
|
||||||
self.view_id = pdm_object.get_value("ViewId")
|
self.view_id = pdm_object.get_value("ViewId")
|
||||||
|
|
||||||
def export_snapshot(self, export_folder='', file_prefix='', ):
|
def export_snapshot(self, export_folder='', file_prefix='', output_format='PNG'):
|
||||||
""" Export snapshot for the current plot
|
""" Export snapshot for the current plot
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
export_folder(str): The path to export to. By default will use the global export folder
|
export_folder(str): The path to export to. By default will use the global export folder
|
||||||
prefix (str): Exported file name prefix
|
prefix (str): Exported file name prefix
|
||||||
|
output_format(str): Enum string. Can be 'PNG' or 'PDF'.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return self._execute_command(
|
return self._execute_command(
|
||||||
exportSnapshots=Cmd.ExportSnapshotsRequest(type='PLOTS',
|
exportSnapshots=Cmd.ExportSnapshotsRequest(type='PLOTS',
|
||||||
prefix=file_prefix,
|
prefix=file_prefix,
|
||||||
viewId=self.view_id,
|
viewId=self.view_id,
|
||||||
exportFolder=export_folder))
|
exportFolder=export_folder,
|
||||||
|
plotOutputFormat=output_format))
|
||||||
|
|
||||||
|
|
@ -224,16 +224,17 @@ class Project(PdmObject):
|
|||||||
exportMultiCaseSnapshot=Cmd.ExportMultiCaseRequest(
|
exportMultiCaseSnapshot=Cmd.ExportMultiCaseRequest(
|
||||||
gridListFile=grid_list_file))
|
gridListFile=grid_list_file))
|
||||||
|
|
||||||
def export_snapshots(self, snapshot_type='ALL', prefix=''):
|
def export_snapshots(self, snapshot_type='ALL', prefix='', plot_format='PNG'):
|
||||||
""" Export all snapshots of a given type
|
""" Export all snapshots of a given type
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
snapshot_type (str): Enum string ('ALL', 'VIEWS' or 'PLOTS')
|
snapshot_type (str): Enum string ('ALL', 'VIEWS' or 'PLOTS')
|
||||||
prefix (str): Exported file name prefix
|
prefix (str): Exported file name prefix
|
||||||
|
plot_format(str): Enum string, 'PNG' or 'PDF'
|
||||||
"""
|
"""
|
||||||
return self._execute_command(
|
return self._execute_command(
|
||||||
exportSnapshots=Cmd.ExportSnapshotsRequest(
|
exportSnapshots=Cmd.ExportSnapshotsRequest(
|
||||||
type=snapshot_type, prefix=prefix, caseId=-1, viewId=-1))
|
type=snapshot_type, prefix=prefix, caseId=-1, viewId=-1, plotOutputFormat=plot_format))
|
||||||
|
|
||||||
def export_well_paths(self, well_paths=None, md_step_size=5.0):
|
def export_well_paths(self, well_paths=None, md_step_size=5.0):
|
||||||
""" Export a set of well paths
|
""" Export a set of well paths
|
||||||
|
Loading…
Reference in New Issue
Block a user