# ISignatureSet

## Content

<div class="docapp-java-api-doc-main"><style>:not(h1, h2, h3, h4, h5, h6)>code,
:not(h1, h2, h3, h4, h5, h6)>tt {
    font-size: 14px;
    padding-top: 4px;
    margin-top: 8px;
    line-height: 1.4em;
}

.summary-table dt code {
    font-size: 14px;
    vertical-align: top;
    padding-top: 4px;
}

.tab {
    background-color: #0066FF;
    color: #ffffff;
    padding: 8px;
    width: 5em;
    font-weight: bold;
}

/*
 * Styles for page header and footer.
 */
.title {
    color: #2c4557;
    margin: 10px 0;
}

.sub-title {
    margin: 5px 0 0 0;
}

.header ul {
    margin: 0 0 15px 0;
    padding: 0;
}

.header ul li,
.footer ul li {
    list-style: none;
}

/*
 * Styles for headings.
 */
.summary h2,
.details h2,
h2,
.block-list h2 {
    padding: 0;
    margin: 15px 0;
}

.summary h3,
.details h3,
.summary .inherited-list h2 {
    background-color: var(--ds-product-color);
    color: #fff;
    border: 1px solid #d0d9e0;
    padding: 7px 5px;
}

.summary h3 a,
.details h3 a,
.summary .inherited-list h2 a {
    color: #fff !important;
}
/*
 * Styles for page layout containers.
 */
dl.notes>dt {
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0 0;
    color: #4E4E4E;
}

dl.notes>dd {
    margin: 5px 10px 10px 0;
    font-size: 14px;
}

dl.name-value>dt {
    margin-left: 1px;
    font-size: 1.1em;
    display: inline;
    font-weight: bold;
}

dl.name-value>dd {
    margin: 0 0 0 1px;
    font-size: 1.1em;
    display: inline;
}

/*
 * Styles for lists.
 */
li.circle {
    list-style: circle;
}

ul.horizontal li {
    display: inline;
    font-size: 0.9em;
}

div.inheritance {
    margin: 0;
    padding: 0;
}

div.inheritance div.inheritance {
    margin-left: 2em;
}

ul.block-list,
ul.details-list,
ul.member-list,
ul.summary-list {
    margin: 10px 0 10px 0;
    padding: 0;
}

ul.block-list>li,
ul.details-list>li,
ul.member-list>li,
ul.summary-list>li {
    list-style: none;
    margin-bottom: 15px;
    line-height: 1.4;
}

.summary-table dl,
.summary-table dl dt,
.summary-table dl dd {
    margin-top: 0;
    margin-bottom: 1px;
}

ul.see-list,
ul.see-list-long {
    padding-left: 0;
    list-style: none;
}

ul.see-list li {
    display: inline;
}

ul.see-list li:not(:last-child):after,
ul.see-list-long li:not(:last-child):after {
    content: ", ";
    white-space: pre-wrap;
}

/*
 * Styles for tables.
 */
.summary-table,
.details-table {
    width: 100%;
    border-spacing: 0;
    border-left: 1px solid #EEE;
    border-right: 1px solid #EEE;
    border-bottom: 1px solid #EEE;
    padding: 0;
}

.caption {
    position: relative;
    text-align: left;
    background-repeat: no-repeat;
    color: #253441;
    font-weight: bold;
    clear: none;
    overflow: hidden;
    padding: 0;
    padding-top: 10px;
    padding-left: 1px;
    margin: 0;
    white-space: pre;
}

.caption a:link,
.caption a:visited {
    color: #1f389c;
}

.caption a:hover,
.caption a:active {
    color: #FFFFFF;
}

.caption span {
    white-space: nowrap;
    padding-top: 5px;
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 7px;
    display: inline-block;
    background-color: var(--ds-product-color);
    color: #fff;
    border: none;
}

div.table-tabs {
    padding: 10px 0 0 1px;
    margin: 0;
}

div.table-tabs>button {
    border: none;
    cursor: pointer;
    padding: 5px 12px 7px 12px;
    font-weight: bold;
    margin-right: 3px;
}

div.table-tabs>button.active-table-tab {
    background: var(--ds-product-color);
    color: #fff;
}

div.table-tabs>button.table-tab {
    background: var(--ds-product-color);
    color: #FFFFFF;
    border-bottom: 1px solid #eee;
}

.two-column-summary {
    display: grid;
    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
}

.three-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
}

.four-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
}

@media screen and (max-width: 600px) {
    .two-column-summary {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 800px) {
    .three-column-summary {
        display: grid;
        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    }

    .three-column-summary .col-last {
        grid-column-end: span 2;
    }
}

@media screen and (max-width: 1000px) {
    .four-column-summary {
        display: grid;
        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    }
}

.summary-table>div,
.details-table>div {
    text-align: left;
    padding: 8px 3px 3px 7px;
}

.col-first,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name {
    vertical-align: top;
    padding-right: 0;
    padding-top: 8px;
    padding-bottom: 3px;
}

.table-header {
    background: var(--ds-product-color);
    color: #fff;
    font-weight: bold;
}

.col-first,
.col-first {
    font-size: 13px;
}

.col-second,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name,
.col-last {
    font-size: 13px;
}

.col-first,
.col-second,
.col-constructor-name {
    vertical-align: top;
    overflow: auto;
}

.col-last {
    white-space: normal;
}

.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-constructor-name a:link,
.col-constructor-name a:visited,
.col-summary-item-name a:link,
.col-summary-item-name a:visited,
.constant-values-container a:link,
.constant-values-container a:visited,
.all-classes-container a:link,
.all-classes-container a:visited,
.all-packages-container a:link,
.all-packages-container a:visited {
    font-weight: bold;
}

.table-sub-heading-color {
    background-color: #EEEEFF;
}

.even-row-color,
.even-row-color .table-header {
    background-color: #FFFFFF;
}

.odd-row-color,
.odd-row-color .table-header {
    background-color: #EEEEEF;
}

/*
 * Styles for contents.
 */
.deprecated-content {
    margin: 0;
    padding: 10px 0;
}

div.block {
    font-size: 14px;
}

.col-last div {
    padding-top: 0;
}

.col-last a {
    padding-bottom: 3px;
}

.module-signature,
.package-signature,
.type-signature,
.member-signature {
    font-size: 14px;
    margin: 14px 0;
    white-space: pre-wrap;
}

.module-signature,
.package-signature,
.type-signature {
    margin-top: 0;
}

.member-signature .type-parameters-long,
.member-signature .parameters,
.member-signature .exceptions {
    display: inline-block;
    vertical-align: top;
    white-space: pre;
}

.member-signature .type-parameters {
    white-space: normal;
}

/*
 * Styles for formatting effect.
 */
.source-line-no {
    color: green;
    padding: 0 30px 0 0;
}

h1.hidden {
    visibility: hidden;
    overflow: hidden;
    font-size: 10px;
}

.block {
    display: block;
    margin: 0 10px 5px 0;
    color: #474747;
}

.deprecated-label,
.descfrm-type-label,
.implementation-label,
.member-name-label,
.member-name-link,
.module-label-in-package,
.module-label-in-type,
.override-specify-label,
.package-label-in-type,
.package-hierarchy-label,
.type-name-label,
.type-name-link,
.search-tag-link,
.preview-label {
    font-weight: bold;
}

.deprecation-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

.preview-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

/*
 * Styles for user-provided tables.
 *
 * borderless:
 *      No borders, vertical margins, styled caption.
 *      This style is provided for use with existing doc comments.
 *      In general, borderless tables should not be used for layout purposes.
 *
 * plain:
 *      Plain borders around table and cells, vertical margins, styled caption.
 *      Best for small tables or for complex tables for tables with cells that span
 *      rows and columns, when the "striped" style does not work well.
 *
 * striped:
 *      Borders around the table and vertical borders between cells, striped rows,
 *      vertical margins, styled caption.
 *      Best for tables that have a header row, and a body containing a series of simple rows.
 */

table.borderless,
table.plain,
table.striped {
    margin-top: 10px;
    margin-bottom: 10px;
}

table.borderless>caption,
table.plain>caption,
table.striped>caption {
    font-weight: bold;
    font-size: smaller;
}

table.borderless th,
table.borderless td,
table.plain th,
table.plain td,
table.striped th,
table.striped td {
    padding: 2px 5px;
}

table.borderless,
table.borderless>thead>tr>th,
table.borderless>tbody>tr>th,
table.borderless>tr>th,
table.borderless>thead>tr>td,
table.borderless>tbody>tr>td,
table.borderless>tr>td {
    border: none;
}

table.borderless>thead>tr,
table.borderless>tbody>tr,
table.borderless>tr {
    background-color: transparent;
}

table.plain {
    border-collapse: collapse;
    border: 1px solid black;
}

table.plain>thead>tr,
table.plain>tbody tr,
table.plain>tr {
    background-color: transparent;
}

table.plain>thead>tr>th,
table.plain>tbody>tr>th,
table.plain>tr>th,
table.plain>thead>tr>td,
table.plain>tbody>tr>td,
table.plain>tr>td {
    border: 1px solid black;
}

table.striped {
    border-collapse: collapse;
    border: 1px solid black;
}

table.striped>thead {
    background-color: #E3E3E3;
}

table.striped>thead>tr>th,
table.striped>thead>tr>td {
    border: 1px solid black;
}

table.striped>tbody>tr:nth-child(even) {
    background-color: #EEE
}

table.striped>tbody>tr:nth-child(odd) {
    background-color: #FFF
}

table.striped>tbody>tr>th,
table.striped>tbody>tr>td {
    border-left: 1px solid black;
    border-right: 1px solid black;
}

table.striped>tbody>tr>th {
    font-weight: normal;
}
</style><h1>Interface ISignatureSet</h1>
<!-- ======== START OF CLASS DATA ======== -->

<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang">Iterable</a>&lt;<a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a>&gt;</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">ISignatureSet</span><span class="extends-implements">
extends <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang">Iterable</a>&lt;<a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a>&gt;</span></div>
<div class="block">A collection of ISignature objects that correspond to the digital signatures  attached to a document. <p>An  <code>ISignatureSet</code> provides access to the signatures in a workbook, including signature lines and non-visible signatures.</p>
<pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 ISignature signature = signatures.addSignatureLine(worksheet, 100.0, 50.0);
 ISignature firstSignature = signatures.get(0);
 int count = signatures.getCount();
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div aria-orientation="horizontal" class="table-tabs" role="tablist"><button aria-controls="method-summary-table.tabpanel" aria-selected="true" class="active-table-tab" id="method-summary-table-tab0" onclick="show('method-summary-table', 'method-summary-table', 3)" onkeydown="switchTab(event)" role="tab" tabindex="0">All Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab2" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Instance Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab3" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div aria-labelledby="method-summary-table-tab0" class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#addNonVisibleSignature()">addNonVisibleSignature</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Creates a signature packet when digitally signing a document.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double)">addSignatureLine</a><wbr>(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds a signature line to a document where signatures are collected.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double)">addSignatureLine</a><wbr>(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top,
 double&nbsp;width)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds a signature line to a document where signatures are collected.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double,double)">addSignatureLine</a><wbr>(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top,
 double&nbsp;width,
 double&nbsp;height)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds a signature line to a worksheet where signatures are collected.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#get(int)">get</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the signature at the specified index in the signature set.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCanAddSignatureLine()">getCanAddSignatureLine</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets a Boolean value indicating whether you can add a signature  line to a document.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCount()">getCount</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the number of signatures in the signature set.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getParent()">getParent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the workbook that contains this  <a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSet</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSkipCertificateValidationOnExporting()">getSkipCertificateValidationOnExporting</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether the validation of the attached digital certificate of the  signed signature should be skipped when exporting signed signatures.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setSkipCertificateValidationOnExporting(boolean)">setSkipCertificateValidationOnExporting</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether the validation of the attached digital certificate of the  signed signature should be skipped when exporting signed signatures.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Iterable">Methods inherited from interface&nbsp;java.lang.<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang">Iterable</a></h3>
<code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#forEach(java.util.function.Consumer)" title="class or interface in java.lang">forEach</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#iterator()" title="class or interface in java.lang">iterator</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#spliterator()" title="class or interface in java.lang">spliterator</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getCanAddSignatureLine()">
<h3>getCanAddSignatureLine</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getCanAddSignatureLine</span>()</div>
<div class="block">Gets a Boolean value indicating whether you can add a signature  line to a document. Read-only. <p>This property returns  <code>false</code> if the workbook is already signed.</p>
<pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 boolean canAddSignatureLine = signatures.getCanAddSignatureLine();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if a signature line can be added to the document; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getParent()">
<h3>getParent</h3>
<div class="member-signature"><span class="return-type"><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></span>&nbsp;<span class="element-name">getParent</span>()</div>
<div class="block">Returns the workbook that contains this  <a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSet</code></a>.
 <pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 IWorkbook parent = signatures.getParent();
 ISignatureSet parentSignatures = parent.getSignatures();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The workbook that contains this <a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSet</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addNonVisibleSignature()">
<h3>addNonVisibleSignature</h3>
<div class="member-signature"><span class="return-type"><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></span>&nbsp;<span class="element-name">addNonVisibleSignature</span>()</div>
<div class="block">Creates a signature packet when digitally signing a document. <p>Use this method to add a non-visible signature to the workbook's  <a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSet</code></a>. Unlike  <a href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double)"><code>addSignatureLine(IWorksheet,double,double)</code></a>,  the returned signature is not associated with a visible signature line in a worksheet.  The signature will be discarded if you save the workbook without signing it.</p>
<pre><code data-language="Java">
 ISignature signature = workbook.getSignatures().addNonVisibleSignature();
 boolean isSignatureLine = signature.getIsSignatureLine();
 ISignatureSet signatures = signature.getParent();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The created non-visible <a href="ISignature.html" title="interface in com.grapecity.documents.excel"><code>ISignature</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double)">
<h3>addSignatureLine</h3>
<div class="member-signature"><span class="return-type"><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></span>&nbsp;<span class="element-name">addSignatureLine</span><wbr><span class="parameters">(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top,
 double&nbsp;width)</span></div>
<div class="block">Adds a signature line to a document where signatures are collected. <p>Only the "Microsoft Office signature line" is supported. Other signature  line providers, such as stamp signatures, are not supported. This overload  adds the signature line shape to the specified worksheet with the specified  width, and passes  <code>100.5</code> as the height to <a href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double,double)"><code>addSignatureLine(IWorksheet,double,double,double,double)</code></a>.</p>
<pre><code data-language="Java">
 ISignature signature = workbook.getSignatures().addSignatureLine(worksheet, 100.0, 50.0, 200.0);
 ISignatureSetup setup = signature.getSetup();
 setup.setSuggestedSigner("Test User");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>worksheet</code> - The worksheet that the signature line shape will be added to. Must not be <code>null</code>.</dd>
<dd><code>left</code> - The left position of the signature line shape.</dd>
<dd><code>top</code> - The top position of the signature line shape.</dd>
<dd><code>width</code> - The width of the signature line shape.</dd>
<dt>Returns:</dt>
<dd>The created <a href="ISignature.html" title="interface in com.grapecity.documents.excel"><code>ISignature</code></a> object.</dd>
<dt>Throws:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang">IllegalStateException</a></code> - if the workbook is in digital signature only mode.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double)">
<h3>addSignatureLine</h3>
<div class="member-signature"><span class="return-type"><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></span>&nbsp;<span class="element-name">addSignatureLine</span><wbr><span class="parameters">(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top)</span></div>
<div class="block">Adds a signature line to a document where signatures are collected. <p>Only the "Microsoft Office signature line" is supported. Other signature  line providers, such as stamp signatures, are not supported.</p> <p>This overload forwards to  <a href="#addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double,double)"><code>addSignatureLine(IWorksheet,double,double,double,double)</code></a> with a width of <code>192</code> and a height of <code>100.5</code>.</p>
<pre><code data-language="Java">
 ISignature signature = workbook.getSignatures().addSignatureLine(worksheet, 100.0, 50.0);
 ISignatureSetup setup = signature.getSetup();
 setup.setSuggestedSigner("John Williams");
 setup.setSigningInstructions("Please review and sign this worksheet.");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>worksheet</code> - The worksheet to which the signature line shape is added.</dd>
<dd><code>left</code> - The left position of the signature line shape.</dd>
<dd><code>top</code> - The top position of the signature line shape.</dd>
<dt>Returns:</dt>
<dd>The created <a href="ISignature.html" title="interface in com.grapecity.documents.excel"><code>ISignature</code></a> object.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addSignatureLine(com.grapecity.documents.excel.IWorksheet,double,double,double,double)">
<h3>addSignatureLine</h3>
<div class="member-signature"><span class="return-type"><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></span>&nbsp;<span class="element-name">addSignatureLine</span><wbr><span class="parameters">(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>&nbsp;worksheet,
 double&nbsp;left,
 double&nbsp;top,
 double&nbsp;width,
 double&nbsp;height)</span></div>
<div class="block">Adds a signature line to a worksheet where signatures are collected. <p>Only the Microsoft Office signature line is supported. Other signature  line providers, such as stamp signatures, are not supported.</p> <p>After the signature line is created, you can use  <a href="ISignatureSetup.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSetup</code></a> to specify signer information and signing instructions.</p>
<pre><code data-language="Java">
 ISignature signature = workbook.getSignatures().addSignatureLine(worksheet, 100.0, 50.0, 192.0, 100.5);
 ISignatureSetup setup = signature.getSetup();
 setup.setSuggestedSigner("Shinzo Nagama");
 setup.setSigningInstructions("Please check the content before signing.");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>worksheet</code> - The worksheet to which the signature line shape is added.</dd>
<dd><code>left</code> - The distance, in points, from the left edge of the worksheet to the signature line shape.</dd>
<dd><code>top</code> - The distance, in points, from the top edge of the worksheet to the signature line shape.</dd>
<dd><code>width</code> - The width, in points, of the signature line shape.</dd>
<dd><code>height</code> - The height, in points, of the signature line shape.</dd>
<dt>Returns:</dt>
<dd>The created <a href="ISignature.html" title="interface in com.grapecity.documents.excel"><code>ISignature</code></a> object.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSkipCertificateValidationOnExporting()">
<h3>getSkipCertificateValidationOnExporting</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getSkipCertificateValidationOnExporting</span>()</div>
<div class="block">Gets whether the validation of the attached digital certificate of the  signed signature should be skipped when exporting signed signatures. <p>The default value is  <code>true</code>. If certificate validation is skipped,  the certificate is treated as valid. This is the default behavior.  Otherwise, the certificate is validated with an X.509 chain.</p>
<pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 signatures.setSkipCertificateValidationOnExporting(false);
 boolean skipCertificateValidation = signatures.getSkipCertificateValidationOnExporting();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if certificate validation is skipped when exporting signed signatures; otherwise,  <code>false</code> if the certificate is validated with an X.509 chain.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSkipCertificateValidationOnExporting(boolean)">
<h3>setSkipCertificateValidationOnExporting</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setSkipCertificateValidationOnExporting</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether the validation of the attached digital certificate of the  signed signature should be skipped when exporting signed signatures. <p>The default value is  <code>true</code>. If certificate validation is skipped,  the certificate is treated as valid. This is the default behavior.  Otherwise, the certificate is validated with an X.509 chain.</p>
<pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 signatures.setSkipCertificateValidationOnExporting(false);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if certificate validation is skipped when exporting signed signatures; otherwise,  <code>false</code> if the certificate is validated with an X.509 chain.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCount()">
<h3>getCount</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getCount</span>()</div>
<div class="block">Gets the number of signatures in the signature set.
 <pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 signatures.addNonVisibleSignature();
 int count = signatures.getCount();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The number of signatures.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get(int)">
<h3>get</h3>
<div class="member-signature"><span class="return-type"><a href="ISignature.html" title="interface in com.grapecity.documents.excel">ISignature</a></span>&nbsp;<span class="element-name">get</span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Gets the signature at the specified index in the signature set. <p>Use this method to retrieve a signature that was added to the workbook's  signature set, including a signature line or a non-visible signature.</p>
<pre><code data-language="Java">
 ISignatureSet signatures = workbook.getSignatures();
 signatures.addSignatureLine(worksheet, 100.0, 50.0);
 ISignature signature = signatures.get(0);
 ISignatureSetup setup = signature.getSetup();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - The index of the signature.</dd>
<dt>Returns:</dt>
<dd>The signature at the specified index.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<script>var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";

function show(tableId, selected, columns) {
    if (tableId !== selected) {
        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
            .forEach(function (elem) {
                elem.style.display = 'none';
            });
    }
    document.querySelectorAll('div.' + selected)
        .forEach(function (elem, index) {
            elem.style.display = '';
            var isEvenRow = index % (columns * 2) < columns;
            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
        });
    updateTabs(tableId, selected);
}

function updateTabs(tableId, selected) {
    document.querySelector('div#' + tableId + ' .summary-table')
        .setAttribute('aria-labelledby', selected);
    document.querySelectorAll('button[id^="' + tableId + '"]')
        .forEach(function (tab, index) {
            if (selected === tab.id || (tableId === selected && index === 0)) {
                tab.className = activeTableTab;
                tab.setAttribute('aria-selected', true);
                tab.setAttribute('tabindex', 0);
            } else {
                tab.className = tableTab;
                tab.setAttribute('aria-selected', false);
                tab.setAttribute('tabindex', -1);
            }
        });
}

function switchTab(e) {
    var selected = document.querySelector('[aria-selected=true]');
    if (selected) {
        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
            // left or up arrow key pressed: move focus to previous tab
            selected.previousSibling.click();
            selected.previousSibling.focus();
            e.preventDefault();
        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
            // right or down arrow key pressed: move focus to next tab
            selected.nextSibling.click();
            selected.nextSibling.focus();
            e.preventDefault();
        }
    }
}
</script></div>