I make my docs using Doxygen/chmcmd in .chm form. I have many sections, subsections, etc. and I would prefer CHM to come up in the 'Contents' tab of the navigation pane with all but the top (#page) items closed.
Is there any option I can set for that?
Edit: Added HTML config file
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = #CMAKE_RUNTIME_OUTPUT_DIRECTORY#/../doc
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = YES
CHM_FILE = #CMAKE_PROJECT_NAME#.chm
HHC_LOCATION =
As far as I know it's not possible to open topics individually in a workflow like Doxygen/chmcmd you described. It is up to the user to open or close the topics individually. There is no formal way to achieve this.
But, what most help authoring folk - with special knowledge using HH Workshop - end up doing is moving the CHM home page (e.g. DefaultTopic=Index.htm - Default topic to open when CHM is opened.) deeper into the TOC. That way if AutoSync is enabled the TOC will automatically expand to show the HomePage and its peer nodes when help opens.
You may know a broad pallet is offered at the CHM files about mouse buttons and keyboard to functions to the navigation in the different windows. The user can individually decide in favor of this way after his personal habits e.g. right-click in the table of contents, and then click Open All.
This opens all books or folders in the table of contents. This command only works if the Contents tab is displayed.
For further information see also: Accessibility shortcut keys Help Viewer
Related
Shortly, i needed to help a good friend, to move her complete typo3 install to another provider.
There was no chance in getting help from the developer at all.
I exported and imported the tables
downloaded all of the folder and uploaded it again
I set new InstallTool Password and added new Administrator
I updated the MySQL-Connection
Now everything seems to work correctly, BESIDES an error calling at the top of the page (where the language selection is supposed to be) saying:
ERROR: Content Element type "sr_language_menu_pi1" has no rendering definition!
For now, I tried to hide this annoying layer with CSS-property display none ;)
But it's a website where I need to have multiple languages enabled.
I have no experience with typo3, so please describe possible solutions as simple as possible.
This error happens e.g. under TYPO3 6.2.17.
You must have a sysfolder called "Templates" where you create a new extension template setup for the extension sr_language_menu. (Template Module)
Use the title "+ext sr_language_menu".
There you enter a constants part like this:
plugin.tx_srlanguagemenu {
addSelectionListHeader = 0
showCurrentFirst = 0
defaultLanguageISOCode = DE
hideIfNoAltLanguages = 1
showInactive = 0
pointerImage =
defaultLayout = 0
addLinksListHeader = 0
doNotLinkCurrent = 1
separator =
token = |
selectionListSeparator =
showCurrent = 1
useIsoLanguageCountryCode = 1
}
And you enter a setup like this.
plugin.tx_srlanguagemenu {
_CSS_DEFAULT_STYLE >
flags.stdWrap.split.wrap = <ul id="langmenu">|*| | |*| |</ul>
flag.NO.stdWrap.wrap = <li>|</li>
flag.INACT.stdWrap.wrap = <li>|</li>
flag.CUR.stdWrap.wrap = <li>|</li>
links.stdWrap.split.wrap >
}
Then go to the tab "Include static (from extensions):" and set the
Selected Items to
"Language Menu setup (sr_language_menu)" and
"Language Menu CSS Styles (sr_language_menu)"
Then go to your main template setup. (Template Module).
Edit Template "Main Template" on page "..."
Go to the tab "Includes" and add the "+ext sr_language_menu". to "Include Basis Template:". You can use the page browser in the new popup window to navigate to the Templates folder and select the record with the template name "+ext sr_language_menu".
Then you must install static_info_tables 6.2.1 or higher, and install the country specific static_info_tables extensions. Deinstall sr_language_menu and reinstall it again. Then open the Extension Manager an see the green round arrow symbol "Execute the update script".
Afterwards the error message has gone and the language menu shows up.
You can see if the templates of this extension is present on the project installation.
Might be you din not include static from template of "sr_language_menu"
Go to Web > Template > Root page
Info/Modify: edit whole template
Something like: http://screencast.com/t/jq3rggQy
cheers,
Ghanshyam
Just open my IDE (Delphi XE5) to continue coding and I got an error (never experienced similar error !) on creating one form, due to field not found on a Tdbedit. Checked the Table is OK and so the field. Having no access to the form I
am almost stump as I cannot edit the form. Before destroying the unit to start from scratch, as the form re-design would take time, can someone give an hint at least how to preserve the form drawing ? Thanks
You should find a yourFormName.dfm file in your project folder. This is simply a text file containing the attributes for all of the form controls. You may well be able to correct your form by editing in wordpad (or insert you favourite editor).
object DBText1: TDBText
Left = 40
Top = 48
Width = 65
Height = 17
DataField = 'quoteref'
DataSource = DataModule1.DSQuoteDetail
end
As you can see the datafield and datasource are both present.
Here I want to set the already exist PDF document properties under Initial View tab in acrobat.
Document Options:
Show = Bookmarks Panel and Page
Page Layout = Continuous
Magnification = Fit Width
Open to Page number = 1
Window Options:
Show = Document Title
As show in below screen shot:
I am tried following code:
PdfStamper stamper = new PdfStamper(reader, new FileStream(dPDFFile, FileMode.Create));
stamper.AddViewerPreference(PdfName.DISPLAYDOCTITLE, new PdfBoolean(true));
the above code is used to set the document title show.
But following code are not working
For Page Layout:
stamper.AddViewerPreference(PdfName.PAGELAYOUT, new PdfName("OneColumn"));
For Bookmarks Panel and Page:
stamper.AddViewerPreference(PdfName. PageMode, new PdfName("UseOutlines"));
So please give guide me what is the correct way to meet my requirement.
I'm adding an extra answer in answer to the extra question in the comments of the previous answer:
When you have a PdfWriter instance named writer, you can set the Viewer preferences like this:
writer.ViewerPreferences = viewerpreference;
In this case, the viewerpreference is a value that can have one of the following values:
PdfWriter.PageLayoutSinglePage
PdfWriter.PageLayoutOneColumn
PdfWriter.PageLayoutTwoColumnLeft
PdfWriter.PageLayoutTwoColumnRight
PdfWriter.PageLayoutTwoPageLeft
PdfWriter.PageLayoutTwoPageRight
See the PageLayoutExample for more info.
You can also change the page mode as is shown in the ViewerPreferencesExample. In which case the different values are "OR"-ed:
PdfWriter.PageModeFullScreen
PdfWriter.PageModeUseThumbs
PdfWriter.PageLayoutTwoColumnRight | PdfWriter.PageModeUseThumbs
PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseOutlines
PdfWriter.FitWindow | PdfWriter.HideToolbar
PdfWriter.HideWindowUI
Currently, you've only used the PrintPreferences example from the official documentation:
writer.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
writer.AddViewerPreference(PdfName.NUMCOPIES, new PdfNumber(3));
writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE);
But in some cases, it's just easier to use:
writer.ViewerPreferences = viewerpreference;
Note that the official documentation is the book "iText in Action - Second Edition." The examples are written in Java, but you can find the C# version here. There is a new book in the works called "The ABC of PDF", but so far only 4 chapters were written. You'll find more info here: http://itextpdf.com/learn
The part about the different options to create a PdfDestination is already present in "The ABC of PDF".
As for setting the language, this is done like this:
stamper.Writer.ExtraCatalog.Put(PdfName.LANG, new PdfString("EN"));
The result is shown in the following screen shot:
As you can see, there is now a Lang entry with value EN added to the catalog.
The two items Show = Bookmarks Panel and Page and Page Layout = Continuous are controlled one layer up from the ViewerPreferences in the document's /Catalog. You can get to this via:
stamper.Writer.ExtraCatalog
In your case you're looking for:
// Acrobat's Single Page
stamper.Writer.ExtraCatalog.Put(PdfName.PAGELAYOUT, PdfName.ONECOLUMN);
// Show bookmarks
stamper.Writer.ExtraCatalog.Put(PdfName.PAGEMODE, PdfName.USEOUTLINES);
The items Magnification = Fit Width and Open to Page number = 1 are also part of the /Catalog but in a special key called /OpenAction. You can set this using:
stamper.Writer.SetOpenAction();
In your case you're looking for:
//Create a destination that fit's width (fit horizontal)
var D = new PdfDestination(PdfDestination.FITH);
//Create an open action that points to a specific page using this destination
var OA = PdfAction.GotoLocalPage(1, D, stamper.Writer);
//Set the open action on the writer
stamper.Writer.SetOpenAction(OA);
My news should not contain any text, except for the title. Instead, in the list view the title should directly point to the first attached file (a PDF).
Now I thought the simplest solution for that would be to hide the title, show only the attached files and give them the title of the related news entry via TypoScript.
For the detail view this code works fine:
plugin.tt_news.newsFiles {
labelStdWrap.cObject = TEXT
labelStdWrap.cObject.dataWrap = DB:tt_news:{GPvar:tx_ttnews|tt_news}:title
labelStdWrap.cObject.wrap3 = {|}
labelStdWrap.cObject.insertData = 1
}
...but it uses the GPvar for the currently displayed news, which of course is not present in list view.
So my question is: how do I get the ID of the currently iterated news entry, if possible at all?
I am open to other solutions as well.
You will need to use custom itemMarkerArrayFunc - fastest by copying the sample into your own extension: typo3conf/ext/tt_news/res/example_itemMarkerArrayFunc.php and adding custom marker to $markerArray.
The mentioned sample even demonstrates access to files so I assume that should not be a problem to modify it for your needs.
Note: if you haven't any own ext to copy the func into it, and you don't want to create such, try to copy it somewhere under fileadmin folder, modifying files in original destination is wrong idea, cause you'll lost all changes after next tt_news' update.
Easiest solution I found is using the labelStdWrap:
plugin.tt_news.newsFiles {
labelStdWrap = TEXT
labelStdWrap.field= title
}
More options can be found here: http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.0.0/view/5/13/
I want to create a word 2007 document without using object model. So I would prefer to create it using open xml format. So far I have been able to create the document. Now I want to add a content control in it and map it to xml. Can anybody guide me regarding the same???
Anoop,
You said that you are able to creat the document using OpenXmlSdk. With that assumption, you can use the following code to create the content control to add to the Wordprocessing.Body element of your Document.
//praragraph to be added to the rich text content control
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve });
Paragraph paragraph = new Paragraph(run);
SdtProperties sdtPr = new SdtProperties(
new Alias { Val = "MyContentCotrol" },
new Tag { Val = "_myContentControl" });
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph);
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock);
//add this content control to the body of the word document
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is
Body mBody = wDoc.MainDocumentPart.Document.Body;
mBody.AppendChild(sdtBlock);
wDoc.MainDocumentPart.Document.Save();
wDoc.Dispose();
I hope this answers a part of your question. I did not understand what you ment by "Map it to XML". Did you mean to say you want to create CustomXmlBlock and add the ContentControl to it?
Have a look for the Word Content Control Toolkit on www.codeplex.com.
Here is a very brief explanation on how to do what you are attempting.
You need to have access to the developer tab on the Word ribbon. To get this working click on the Office (Round thingy) in the top left hand corner and Select Word Options at the bottom of the menu. On the first options page there is a checkbox to show the developer toolbar.
Use the developer toolbar to add the Content controls you want on the page. Click the properties button in the Content controls section of the developer bar and set the name and tag properties (I stick to naming the name and tag fields with the same name).
Save and close the word document.
Open the Content control toolkit and then open your document with the toolkit. Use the left hand pain to create some custom xml to link to your controls.
Now use the bind view to drag and drop the mappings between your custom xml and the custom controls that are displayed in the right panel of the toolkit.
You can use the openxml sdk 1.0 or 2.0 (still in ctp) to open your word document in code and access the custom xml file that is contained as part of the word document.
If you want to have a look at how your word document looks as xml. Make a copy of your word document and then rename it to say "a.zip". Double click on the zip file and then navigate the folder structure. The main content of the word document is held under the word folder in a file called "document.xml". The custom xml part of the document is held under the customXml folder and is generally found in the file named "item1.xml".
I hope this brief explanation get you up and running.