mvc open pdf file in new window : How to extract a picture from a pdf application control tool html web page .net online 0131473816_book55-part76

Using a Help Controller
Normally you will create a help controller object that will last the lifetime of
the application instance, probably as a pointer member of your application
class (create the object in 
OnInit
and delete it in 
OnExit
). Make it a pointer so
that you can delete it fully in 
OnExit
because some help controller implemen-
tations rely on a dynamic library loading class that is not available when the
application object is being deleted. Then call 
Initialize
with the name of the
help file. You can omit the file extension, and wxWidgets will supply the rele-
vant one for the current platform. For example:
#include “wx/help.h”
#include “wx/fs_zip.h”
bool MyApp::OnInit()
{
...
// Required for wxWidgets HTML help
wxFileSystem::AddHandler(new wxZipFSHandler);
m_helpController = new wxHelpController;
m_helpController->Initialize(helpFilePath);
...
Implementing Online Help
515
Figure 20-2 wxWidgets HTML Help
How to extract a picture from a pdf - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
pdf extract images; extract images from pdf files without using copy and paste
How to extract a picture from a pdf - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images from pdf file; extract image from pdf java
return true;
}
int MyApp::OnExit()
{
delete m_helpController;
...
return 0;
}
Note  that  here we leave  it  to wxWidgets to  choose  the  appropriate  help
class:
wxHelpController
is an alias for 
wxCHMHelpController
on Windows and
wxHtmlHelpController
on other platforms. You can use 
wxHtmlHelpController
for all platforms if you want, but it’s better to use a native help viewer when
possible.
When the help controller has been successfully initialized, you can show
the help to the user with functions illustrated in the following:
// Show the contents
m_helpController->DisplayContents();
// Display the topic whose title is “Introduction”
m_helpController->DisplaySection(wxT(“Introduction”));
// Display the given HTML topic within the help file
m_helpController->DisplaySection(wxT(“wx.html”));
// Display the given topic by ID (WinHelp, MS HTML Help only)
m_helpController->DisplaySection(500);
// Search for a keyword
m_helpController->KeywordSearch(wxT(“Getting started”));
Typically, you’ll  want  to  call 
DisplayContents
from the  event handler  for  a
menu item Help  Contents in  the application’s Help menu. You might  have
other important topics listed on the Help menu, and you can display them via
DisplaySection
.If you want to use the topic title with 
DisplaySection
,all the
topic titles in the help file must be unique.
You  also  might  want  to  add  a  Help button  to  all  non-trivial  custom
dialogs in your application to show an explanation of the current dialog and
its controls. However, there is a catch here: showing help from a modal dialog
does not work on all platforms. Where the help viewer is an external applica-
tion (for example, when using 
wxCHMHelpController
on Windows), you can dis-
play help from a modal dialog. But when the help controller shows a modeless
window that is part of the same program, as with 
wxHtmlHelpController
,you
have to be careful because in general, you cannot display a modeless window
(such as a frame) from within a modal dialog. By definition, a modal dialog
won’t enable you to switch to another arbitrary window except for another
modal dialog. If you use wxGTK, there is a workaround that allows this to
516
Perfecting Your Application Chapter 20
C# PDF insert image Library: insert images into PDF in C#.net, ASP
How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Import graphic picture, digital photo, signature and logo into PDF document.
extract images from pdf acrobat; some pdf image extractor
C# Word - Paragraph Processing in C#.NET
C# users can set paragraph properties and create content such as run, footnote, endnote and picture in a paragraph. Create Picture in Paragraph.
extract photos from pdf; how to extract images from pdf
work for 
wxHtmlHelpController
,but on Mac OS X, you need to either use an
external help viewer (such as HelpView as mentioned earlier) or show the
help in a modal dialog.The latter method is described in the next section.
Extended wxWidgets HTML Help
The wxWidgets HTML Help system is great, but it does have a couple of limi-
tations. Firstly, it can only display help in its own frame, so it can’t be used for
embedded help, such as in a tab on your main window. Secondly, as a result of
the previous limitation, it doesn’t address the problem of displaying a mode-
less help window from a modal dialog.
To overcome these limitations, there is a variant of wxWidgets HTML
Help that implements the help viewer as a window that can be shown as a child
of any window.You can copy it from 
examples/chap20/htmlctrlex
on the CD-ROM
or download it from 
ftp://biolpc22.york.ac.uk/pub/contrib/helpctrlex
.
If  you  compile  it  with  your  application, you  can  embed
wxHtmlHelp
WindowEx
in your application and control it with 
wxHtmlHelpControllerEx
before
using the usual controller functions for displaying help. Here’s an example of
embedding:
#include “helpwinex.h”
#include “helpctrlex.h” 
bool MyApp::OnInit()
{
...
m_embeddedHelpController = new wxHtmlHelpControllerEx;
m_embeddedHelpWindow = new wxHtmlHelpWindowEx;
m_embeddedHelpWindow->SetController(m_embeddedHelpController);
m_embeddedHelpController->SetHelpWindow(m_embeddedHelpWindow);
m_embeddedHelpController->UseConfig(config, wxT(“EmbeddedHelp”));
m_embeddedHelpWindow->Create(parentWindow,
wxID_ANY, wxDefaultPosition, wxSize(200, 100),
wxTAB_TRAVERSAL|wxNO_BORDER, wxHF_DEFAULT_STYLE);
m_embeddedHelpController->AddBook(wxT(“book1.htb”));
m_embeddedHelpController->AddBook(wxT(“book2.htb”));
return true;
}
int MyApp::OnExit(void)
{
if (m_embeddedHelpController)
{
m_embeddedHelpController->SetHelpWindow(NULL);
delete m_embeddedHelpController;
}
...
return 0;
}
Implementing Online Help
517
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
drawing As RaterEdgeDrawing = New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing provide powerful & profession imaging controls, PDF document, tiff
pdf image extractor c#; extract photos pdf
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
first! VB.NET Image & Picture Cropping Application. Do you need to save a copy of certain part of an image file in a programming way?
extract color image from pdf in c#; extract pictures pdf
To solve the modal dialog problem, you can use the 
wxModalHelp
class to show a
topic in a modal dialog.When the user has finished browsing the help, clicking
on the Close button takes control back to the previous dialog. The following
code is all that’s needed to show a topic:
wxModalHelp help(parentWindow, helpFile, topic);
It would be inconvenient to make a distinction between modal help and nor-
mal help throughout your application, so here’s a function that you can use to
make life easier:
// Shows help using normal help controller or
// modal help controller if modalParent is non-NULL
void MyApp::ShowHelp(const wxString& topic, wxWindow* modalParent)
{
#if USE_MODAL_HELP
if (modalParent)
{
wxString helpFile(wxGetApp().GetFullAppPath(wxT(“myapp”)));
wxModalHelp help(modalParent, helpFile, topic);
}
else
#endif
{
if (topic.IsEmpty())
m_helpController->DisplayContents();
else
m_helpController->DisplaySection(topic);
}
}
The symbol 
USE_MODAL_HELP
should  be defined for  those platforms that  use
wxHtmlHelpController
.When you want to show help from a modal dialog, pass a
pointer to the dialog to 
ShowHelp
,and if necessary, it will be shown in its own
modal dialog. When help isn’t shown from a modal dialog, just pass 
NULL
as the
second argument of 
ShowHelp
.
Authoring Help
Most help  files  nowadays are  based  on HTML. To  make  it even easier  to
author  help on multiple  platforms, wxWidgets  HTML  Help  uses the  same
project, contents,and keyword files as the input to a MS HTML Help file. This
way, you only have to deal with one set of files for all platforms. These are the
files you’ll need to create your help file:
 A set of HTML files, one per topic.
 A  contents  file  (extension 
hhc
 with  an  XML  description  of the  topic 
hierarchy.
518
Perfecting Your Application Chapter 20
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
VB.NET Method to Resize Image & Picture. Here we display the method that We are dedicated to provide powerful & profession imaging controls, PDF document, image
extract image from pdf c#; extract images pdf
VB.NET Image: Image Scaling SDK to Scale Picture / Photo
VB.NET DLLs to Scale Image / Picture. There are two dlls that will be involved in the process of VB.NET image scaling, which are RasterEdge.Imaging.Basic.dll
some pdf image extract; extract image from pdf in
 An optional keyword file (extension 
hhk
) that maps words and phrases to
HTML topics.
 A project file (extension 
hhp
) that describes all the other files in the proj-
ect and specifies project options.
You then compile the project file into an MS HTML Help file (extension
chm
 or  a wxWidgets  HTML  Help  file  (extension 
htb
). For  the  former, use
Microsoft’s HTML Help Workshop, which can be invoked either from the com-
mand line or as a GUI application. For the latter, simply use your favorite zip
utility to make a zip archive, renaming it with an 
htb
extension.
Although you could write your help file by hand, it’s much more conven-
ient to use a tool.You can use a tool intended for MS HTML Help file creation,
but be aware that it may output HTML that wxWidgets HTML Help cannot
recognize. Anthemion Software’s HelpBlocks is the only tool that specifically
targets both MS HTML Help and wxWidgets HTML Help and assists you with
writing HTML and organizing keywords.
To get a feel for a good help file structure, look at the help in other appli-
cations. You might consider including the following topics: Contents, Welcome,
Contacts, Installation, Registration, Release notes, Tutorial, Using menu com-
mands, Using  toolbar  commands, Using  dialogs (with  descriptions  of  all
dialogs as subtopics), Using keyboard shortcuts, Command-line options, and
Troubleshooting.
Remember that topics you show from the application should be designed
to be standalone. Other topics, such as a tutorial, read better in a more linear
fashion.
Other Ways to Provide Help
You might think of other ways to offer the user online help, perhaps using the
HTML classes that wxWidgets provides. For example, Anthemion Software’s
Writer’s Café has a modal welcome dialog with a small number of suggested
options, implemented using a 
wxHtmlWindow
.These include showing a  Quick
Tour consisting of a number of HTML screens to quickly give the user an idea
of what the product can do (see Figure 20-3). The advantage of doing it this
way is immediacy. Novice users are guided along a fairly narrow path initially,
and they do not have to find their way around a full help system with ample
opportunities for getting lost and confused.
Implementing Online Help
519
C# TIFF: How to Insert & Burn Picture/Image into TIFF Document
Support adding image or picture to an existing or new creating blank TIFF are dedicated to provide powerful & profession imaging controls, PDF document, tiff
online pdf image extractor; extract pdf images
VB.NET Image: VB.NET Planet Barcode Generator for Image, Picture &
png, gif, jpeg, bmp and tiff) and a document file (supported files are PDF, Word & Generate Planet Barcode on Picture & Image in VB.NET. In this part, we will
extract images pdf acrobat; how to extract images from pdf in acrobat
Another popular method for providing online help is the opening tip. This
is great for educating the user about the product’s functionality in palatable
chunks.As mentioned in Chapter 8, “Using Standard Dialogs,” wxWidgets has
a function 
wxShowTip
that takes a parent window, a 
wxTipProvider
pointer to
tell wxWidgets where to find the tips, and a boolean for the initial value of a
Show Tips at Startup check box. For example:
#include “wx/tipdlg.h”
...
m_tipProvider = wxCreateFileTipProvider(tipFilename, currentTip);
wxShowTip(parent, m_tipProvider, showAtStart);
Context-Sensitive Help and Tooltips
If possible, an application should provide context-sensitive help and the option
of tooltips for controls.A tooltip is a little descriptive window that pops up over
a control as the mouse pointer hovers over it. Context-sensitive help is similar,
520
Perfecting Your Application Chapter 20
Figure 20-3 Quick Tour dialog in Writer’s Café
VB.NET Image: Create Code 11 Barcode on Picture & Document Using
Write Code 11 barcode image on single-page or multi-page PDF, TIFF or Word document using VB.NET code. Code 11 Barcode Generation on PDF Using VB.NET Code.
extract image from pdf online; how to extract a picture from a pdf
VB.NET Image: How to Save Image & Print Image Using VB.NET
tutorial page will tell you how to save and print image / picture file using Capable of saving and printing multi-page document files, like PDF and Word, in VB
pdf image extractor; extract image from pdf file
but the descriptive window  is invoked by  the user clicking  on a button or
menu item to initiate the help and then clicking on the window of interest.
These topics are discussed  in more  detail in Chapter 9, “Creating Custom
Dialogs,” in the context of help for dialogs, but you can equally set context-
sensitive help for arbitrary windows. For example, applications often have a
What’s This? item on the Help menu and toolbar, which enables the user to
click on a window or control in the main window for further details. You don’t
have to restrict yourself to the way help is displayed by default:you can derive
your own class from 
wxHelpProvider
and implement 
ShowHelp
yourself.
Some help controllers are able to display the context-sensitive help in a
more  “native” way  than  the  default  behavior. If  you  are  using
wxCHMHelpController
,let wxWidgets use this help controller’s context-sensitive
help implementation, in the following way:
#include “wx/cshelp.h”
m_helpController = new wxCHMHelpController;
wxHelpProvider::Set(
new wxHelpControllerHelpProvider(m_helpController));
The 
wxHelpControllerHelpProvider
instance will  use  the  help  controller’s
DisplayTextPopup
function to display context-sensitive help.
Note that context-sensitive help is not in the Mac OS X style guide, and
so should be omitted on this platform.
Menu Help
When you append items to a menu, you have the option of specifying a help
string. If the menu is part of a menu bar, and the menu bar’s frame has a sta-
tus bar, an item’s help string will be displayed in the status bar when the
mouse is over that item. You can set the status pane in which the help will be
displayed using 
wxFrame::SetStatusBarPane
(a value of 
-1
will disable it). The
behavior is implemented in 
wxFrame
using a default 
wxMenuEvent
handler for
EVT_MENU_HIGHLIGHT_ALL
,so you can reimplement it to do something different,
such as showing the help in a different window.
P
ARSING THE
C
OMMAND
L
INE
Passing commands to the application to be read on initialization is often use-
ful, and if the application is document-oriented, you should allow files to be
loaded in this way.You also might want to let the application be run from the
operating system command line, for example to automate tasks from a make-
file, in which case command-line options can be used to tell the application
that it should be run without a user interface. Although most configuration of
Parsing the Command Line
521
an application will be done via the user interface, command-line configuration
options can be appropriate in some cases,such as turning on a debug mode.
wxWidgets provides the 
wxCmdLineParser
class to make this programming
task  quite  easy, avoiding  the  need  to process 
wxApp::argc
and 
wxApp::argv
directly. The  class  looks  for  switches  (such  as 
-verbose
), options  (such  as 
-debug:1
), and parameters (such as 
“myfile.txt”
). It can recognize both short
and long forms of switches and options, and each item can have a help string,
which will be used by 
Usage
when writing help text to the current log target.
Here’s  an  example, showing  how  to  parse switches, options, and
parameters:
#include “wx/cmdline.h”
static const wxCmdLineEntryDesc g_cmdLineDesc[] =
{
{ wxCMD_LINE_SWITCH, wxT(“h”), wxT(“help”),    wxT(“displays help on
the command line parameters”) },
{ wxCMD_LINE_SWITCH, wxT(“v”), wxT(“version”), wxT(“print version”) },
{ wxCMD_LINE_OPTION, wxT(“d”), wxT(“debug”), wxT(“specify a debug
level”) },
{ wxCMD_LINE_PARAM,  NULL, NULL, wxT(“input file”),
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
{ wxCMD_LINE_NONE }
};
bool MyApp::OnInit()
{
// Parse command line
wxString cmdFilename;
wxCmdLineParser cmdParser(g_cmdLineDesc, argc, argv);
int res;
{
wxLogNull log;
// Pass false to suppress auto Usage() message
res = cmdParser.Parse(false);
}
// Check if the user asked for command-line help 
if (res == -1 || res > 0 || cmdParser.Found(wxT(“h”)))
{
cmdParser.Usage();
return false;
}
// Check if the user asked for the version
if (cmdParser.Found(wxT(“v”)))
{
#ifndef __WXMSW__
wxLog::SetActiveTarget(new wxLogStderr);
#endif
wxString msg;
wxString date(wxString::FromAscii(__DATE__));
msg.Printf(wxT(“Anthemion DialogBlocks, (c) Julian Smart, 2005
Version %.2f, %s”), wbVERSION_NUMBER, (const wxChar*) date);
522
Perfecting Your Application Chapter 20
wxLogMessage(msg);
return false;
}
// Check for debug level
long debugLevel = 0;
if (cmdParser.Found(wxT(“d”), & debugLevel))
       
}
// Check for a project filename
if (cmdParser.GetParamCount() > 0)
{
cmdFilename = cmdParser.GetParam(0);
// Under Windows when invoking via a document
// in Explorer, we are passed the short form.
// So normalize and make the long form.
wxFileName fName(cmdFilename);
fName.Normalize(wxPATH_NORM_LONG|wxPATH_NORM_DOTS|
wxPATH_NORM_TILDE|wxPATH_NORM_ABSOLUTE);
cmdFilename = fName.GetFullPath();
}
...
return true;
}
The  use  of 
wxFileName
for normalizing  the  file  name  is necessary  because
Windows sometimes passes the short form when the application is invoked
from the command line.
As we noted earlier in the chapter, Mac OS X doesn’t use the command
line when running an application by opening an associated document; instead,
wxApp::MacOpenFile
is called after the application has initialized. However, the
command-line method is used by other operating systems. If you intend to
write a document-based application for Mac OS X and other operating sys-
tems,you should allow for both methods.
S
TORING
A
PPLICATION
R
ESOURCES
A simple application might consist of no more than an executable, but more
realistically, you’ll have a help file, maybe HTML files and images, and appli-
cation-specific data files.Where do these things go?
Reducing the Number of Data Files
You can do several things to create a more tidy installation. Firstly, you can
include XPM images in your C++ files (with 
#include
) instead of loading them
Storing Applications Resources
523
from disk. Secondly,if you are using XRC files, you can compile them into C++
using the 
wxrc
utility in 
utils/wxrc
in your 
wxWidgets
distribution:
wxrc resources.xrc --verbose --cpp-code --output resources.cpp
You can then call the 
InitXmlResource
function defined in the generated C++
file to load the resources.
Thirdly, you can  archive  your  data  files  into  a  standard  zip file  and
extract them using streams and virtual file systems, as explained in  for data
files. Include 
“wx/fileloc.h”
and then call the class’s static functions, includ-
ing 
GetConfigDir
,
GetInstallDir
,
GetDataDir
,
GetLocalDataDir
,and 
GetUserConfig
Data
.Refer to the 
wxWidgets
manual for details of these functions’ return val-
ues on each platform.
524
Perfecting Your Application Chapter 20
On Mac OS X,you'll need to create an application bundle: a file hierarchy
with standard locations for the executable, data files, and so on. See later in
the chapter for information on creating a bundle.
Finding the Application Path
A common request from wxWidgets developers is a function to find the path of
the currently executing application to enable the application to load data that
is in the same directory.There is no such function in 
wxWidgets
,partly because
it’s difficult to achieve this reliably on all platforms, and partly to encourage
the  installation  of  data  into  standard  locations  (particularly  on  Linux).
However, it can be convenient to put all the application’s files in the same
folder, so  in 
examples/chap20/findapppath
, you  can  find  code  for  a  function
wxFindAppPath
:
// Find the absolute path the application has been run from.
wxString wxFindAppPath(const wxString& argv0, const wxString& cwd,
const wxString& appVariableName = wxEmptyString,
const wxString& appName = wxEmptyString);
argv0
is the value of 
wxApp::argv[0]
,which on some platforms gives the full
pathname for the application.
cwd
is the current working directory (obtained with 
wxGetCwd
), which is a
hint that can be used on some platforms.
appVariableName
is  the  name  of  an  environment  variable, such  as
MYAPPDIR
,that may have been set externally to indicate the application's location.
appName
is the prefix used in a bundle to allow the function to check the
bundle  contents  for  application  location. For  example, in  the  case  of
DialogBlocks, the argument is 
DialogBlocks
,and on Mac OS X, the function
will  try  to  return 
<currentdir>/DialogBlocks.app/Content/MacOS
for  the  exe-
cutable location.
Documents you may be interested
Documents you may be interested