क्या प्रकाशक में विषय-सूची उत्पन्न हो सकती है?


0

मेरे पास अधिकांश पृष्ठों पर हेडर के साथ टाइप की गई सामग्री की एक अच्छी मात्रा है। मैं इन शीर्ष लेखों के आधार पर एक उत्पन्न तालिका बनाना चाहता हूं। क्या यह संभव है, और यदि ऐसा है तो मैं यह कैसे कर सकता हूं?

जवाबों:


1

मैं इन शीर्ष लेखों के आधार पर एक उत्पन्न तालिका बनाना चाहता हूं

आप स्वचालित रूप से सामग्री की तालिका नहीं बना सकते - यह सुविधा प्रकाशक में उपलब्ध नहीं है।

निम्नलिखित निर्देश आपको बताते हैं कि मैन्युअल रूप से TOC कैसे बनाया जाता है। ऐसा लगता है कि आपको अपने शीर्षकों को कॉपी और पेस्ट करना होगा ...

प्रकाशक में सामग्री की एक तालिका डालें

थोड़े अतिरिक्त काम के लिए और एक बड़ी अदायगी के लिए- आप प्रकाशक में सामग्री तालिका बना सकते हैं। टेक्स्ट बॉक्स को जोड़कर शुरू करें और नेताओं के साथ दाएं-संरेखित टैब का उपयोग करें। नेता सामग्री की तालिका में अध्याय या अनुभाग शीर्षक का पालन करने वाले बिंदु, डैश या रेखाएं हैं और उन शीर्षकों को पृष्ठ संख्याओं के साथ पंक्तिबद्ध करते हैं।

टैब स्टॉप और नेताओं का उपयोग करके सामग्री की तालिका (TOC) बनाएं।

  1. होम> ड्रा टेक्स्ट बॉक्स पर क्लिक करें।

  2. अपने प्रकाशन में, उस जगह पर क्लिक करें जहाँ आप पाठ का एक कोना चाहते हैं, और तब तिरछे खींचें जब तक आपके पास वह बॉक्स आकार न हो, जिसे आप चाहते हैं।

  3. अपनी सामग्री तालिका का शीर्षक टाइप करें, और उसके बाद ENTER दबाएँ।

  4. उस क्षैतिज शासक पर डबल-क्लिक करें जहाँ आप पृष्ठ संख्या प्रकट करना चाहते हैं।

  5. टैब संवाद बॉक्स में, राइट क्लिक करें, अपनी लीडर शैली चुनें, और फिर ठीक पर क्लिक करें।

  6. अब अपनी TOC प्रविष्टि टाइप करें; उदाहरण के लिए: अध्याय 1, नेता को सम्मिलित करने के लिए TAB दबाएँ और पृष्ठ संख्या टाइप करें।

स्रोत प्रकाशक में सामग्री की एक तालिका डालें


0

एक सहकर्मी समस्या के त्वरित समाधान की तलाश में यहां आया, कहीं और समाधान नहीं ढूंढ सका, इसलिए प्रकाशक 2010 के साथ Win7 पर PowerShell संस्करण 5 के साथ TOC का अनुकरण करने के लिए अपने स्वयं के समाधान को पोस्ट करना।

TOC ने पृष्ठ 2 और 3 के बीच जोड़ा जहां पृष्ठ 1 एक शीर्षक कवर पृष्ठ और 2 एक स्वागत योग्य पृष्ठ था। शीर्षक हमेशा टेक्स्ट बॉक्स आकार 1 था। संरेखण शैली को बनाए रखने के लिए टीओसी के लिए एक मोनोसैप्ड फ़ॉन्ट का उपयोग किया गया था।

यदि आप Standard Publisher Page Part Headings का उपयोग कर रहे हैं, तो निम्नलिखित चर $ TOCAdd प्रतिस्थापित किया जा सकता है

$Heading_Geometric_Title_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[3].TextFrame.TextRange.Text
$Heading_Geometric_Subtitle_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[2].TextFrame.TextRange.Text

$Heading_Brackets_Title_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[2].TextFrame.TextRange.Text
$Heading_Brackets_Subtitle_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[5].TextFrame.TextRange.Text

$Heading_Pure_Title_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[3].TextFrame.TextRange.Text
$Heading_Pure_Subtitle_Text = $Publisher.ActiveDocument.Pages($pge).Shapes(1).GroupItems[2].TextFrame.TextRange.Text

#

# Path to Publisher document
$FileName = "$env:USERPROFILE\Documents\Publication_1.pub"
$Publisher=NEW-Object –comobject Publisher.Application

# Following line sets whether file is opened visible or not.
$Publisher.ActiveWindow.visible = 1

# Open Publisher Document
$Publisher.open($FileName)

# Check how Many Pages in document
$count = $Publisher.ActiveDocument.Pages.Count

# How Many TOC Pages required in document for the amount of titles (assume 17 per page)
    $TOCPages = [math]::Round($count/17)

# New Page Count including TOC required in document
    $countINC = $count += $TOCPages

# Add TOC pages required insert Page(s) after last Pre page 
    $Pre = 2
    IF ($TOCPages -ge 1) {
    ForEach ( $n in 1..$TOCPages){
    $Publisher.ActiveDocument.Pages.Add(1,$Pre)
    }

# Add table on TOC Pages
    ForEach ( $n In 1..$TOCPages){
# Insert New Toc from this page No 
    $n += $Pre

# Insert table on the new TOC page with  NumRows:=17, NumColumns:=3, Left:=50, Top:=70, Width:=600, Height:=300
    $TOCPage = $Publisher.ActiveDocument.Pages($n).Shapes.AddTable( 17, 3, 50, 75, 600, 300)
# Adjust column widths for table (shape)
    $TOCPage.Table.Columns(1).width = 30  #Item No
    $TOCPage.Table.Columns(2).width = 450 #Item
    $TOCPage.Table.Columns(3).width = 70  #Page No

    #Add Text Box Standard Text (type 1) adjust font size then make it Bold
    $TOCTitle = $Publisher.ActiveDocument.Pages($n).Shapes.AddTextbox(1, 360,  26, 150, 25)
    $TOCIndex = ($n -= ($Pre))
    $TOCTitle.TextFrame.TextRange.Text = "Table of Contents $TOCIndex"
    $TOCTitle.TextFrame.TextRange.Font.Size = 14
    $TOCTitle.TextFrame.TextRange.Font.Bold = 1 
    } 
    }
# Identify first page after TOC
    $start = $TOCPages += ($Pre += 1)
# Create TOC Array (Fixed Content First) append to fixed length Char 46 (period)
    $TOCROW1 = 'Title Page'
    $TOCROW2 = 'Welcome to the Catalogue'
    $TOCROW3 = 'Table of Contents'
    $TOCArray = @()
    $TOCRow = "" | Select 'Table of Contents','PageNo'
    $TOCRow.'Table of Contents' = $TOCROW1.PadRight(60,[char]46)
    $TOCRow.PageNo = 1
    $TOCArray = $TOCArray + $TOCRow
    $TOCRow = "" | Select 'Table of Contents','PageNo'
    $TOCRow.'Table of Contents' = $TOCROW2.PadRight(60,[char]46)
    $TOCRow.PageNo = 2
    $TOCArray = $TOCArray + $TOCRow
    $TOCRow = "" | Select 'Table of Contents','PageNo'
    $TOCRow.'Table of Contents' = $TOCROW3.PadRight(60,[char]46)
    $TOCRow.PageNo = 3
    $TOCArray = $TOCArray + $TOCRow

# Use try / catch for page shapes returning error
    try { 
    ForEach ($pge in $Start..$countINC){
    IF ($pge -eq "" ){ Write-Host "Debug"}
    Else{ # Add TOC Array Entries

    $TOCAdd = $Publisher.ActiveDocument.Pages($pge).Shapes(1).TextFrame.TextRange.Text 
    $TOCRow = "" | Select 'Table of Contents','PageNo';
    $TOCRow.'Table of Contents' = $TOCAdd.PadRight(60,[char]46)
    $TOCRow.PageNo = $pge
    $TOCArray = $TOCArray + $TOCRow
    }
 }
}

    catch { }

# Debug uncomment following line to View Output of 'Table of Contents' based on the data added in Array variable 'TOCArray'
#    $TOCArray | Format-Table -Wrap -Property 'Table of Contents','PageNo'

# Add TOC entries to TOC (uses monospaced font to get alignment)
    $n = 2
    $q = -1
    $Item =0
    ForEach ($TOC in 1..$TOCPages) {
     $n++
     $q++
     $Row = 0
     $Offset = ($q * $Range)
     $Range  = 17
     $TOCArray | Select-Object -Skip $Offset -First $Range -Property 'Table of Contents','PageNo'| 
    ForEach-Object { 
      $Row++
      $Item++
      $TOCEntry = $Publisher.ActiveDocument.Pages($n).Shapes(1).Table.Rows($Row).Cells(1);
      $TOCEntry.TextRange.Text = "$Item";
      $TOCEntry.TextRange.Font.Size = 12;
      $TOCEntry.TextRange.Font.Bold = 1;
      $TOCEntry.TextRange.Font.Name = 'Consolas';
      $TOCEntry = $Publisher.ActiveDocument.Pages($n).Shapes(1).Table.Rows($Row).Cells(2);
      $TOCEntry.TextRange.Text = $_.'Table of Contents'.replace("`r","").ToString()
      $TOCEntry.TextRange.Font.Size = 12;
      $TOCEntry.TextRange.Font.Bold = 1;
      $TOCEntry.TextRange.Font.Name = 'Consolas';
      $TOCEntry = $Publisher.ActiveDocument.Pages($n).Shapes(1).Table.Rows($Row).Cells(3);
      #Need to Convert PageNo stored as System.Int32 to String
      $TOCEntry.TextRange.Text = $_.PageNo.ToString()
      $TOCEntry.TextRange.Font.Size = 12;
      $TOCEntry.TextRange.Font.Bold = 1;
      $TOCEntry.TextRange.Font.Name = 'Consolas';
     }
    }
# Save File (and increment versions), then close.
    $v++
    $file = $Publisher.ActiveDocument.Name
    $BaseName = $file.Substring(0, $file.LastIndexOf('.'))
    $strFileName = $BaseName + "_v1" + $v
    $Publisher.ActiveDocument.SaveAs($strFileName)
    $Publisher.ActiveDocument.Close()
    $Publisher.quit()
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Publisher)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.